ilot/authentik: add check, rework packages #26

Merged
ayakael merged 4 commits from authentik/add-check into v3.20 2024-09-23 01:26:05 +00:00
4 changed files with 180 additions and 40 deletions

View file

@ -19,7 +19,8 @@ jobs:
steps: steps:
- name: Environment setup - name: Environment setup
run: | run: |
doas apk add nodejs git patch curl doas apk add nodejs git patch curl net-tools
doas hostname host.docker.internal
cd /etc/apk/keys cd /etc/apk/keys
doas curl -JO https://forge.ilot.io/api/packages/ilot/alpine/key doas curl -JO https://forge.ilot.io/api/packages/ilot/alpine/key
- name: Repo pull - name: Repo pull

View file

@ -19,7 +19,8 @@ jobs:
steps: steps:
- name: Environment setup - name: Environment setup
run: | run: |
doas apk add nodejs git patch curl doas apk add nodejs git patch curl net-tools
doas hostname host.docker.internal
cd /etc/apk/keys cd /etc/apk/keys
doas curl -JO https://forge.ilot.io/api/packages/ilot/alpine/key doas curl -JO https://forge.ilot.io/api/packages/ilot/alpine/key
- name: Repo pull - name: Repo pull

View file

@ -2,7 +2,7 @@
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net> # Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=authentik pkgname=authentik
pkgver=2024.8.2 pkgver=2024.8.2
pkgrel=0 pkgrel=1
pkgdesc="An open-source Identity Provider focused on flexibility and versatility" pkgdesc="An open-source Identity Provider focused on flexibility and versatility"
url="https://github.com/goauthentik/authentik" url="https://github.com/goauthentik/authentik"
# s390x: missing py3-celery py3-flower and py3-kombu # s390x: missing py3-celery py3-flower and py3-kombu
@ -153,14 +153,21 @@ depends="
py3-yarl py3-yarl
py3-zope-interface py3-zope-interface
py3-zxcvbn py3-zxcvbn
redis valkey
uvicorn uvicorn
" "
makedepends="go npm" makedepends="go npm"
# checkdepends scooped up by poetry due to number checkdepends="
checkdepends="poetry py3-coverage" py3-pip
# tests disabled for now py3-coverage
options="!check" py3-pytest
py3-pytest-django
py3-pytest-randomly
py3-pytest-timeout
py3-freezegun
py3-boto3
py3-requests-mock
"
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-install" install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-install"
source=" source="
$pkgname-$pkgver.tar.gz::https://github.com/goauthentik/authentik/archive/refs/tags/version/$pkgver.tar.gz $pkgname-$pkgver.tar.gz::https://github.com/goauthentik/authentik/archive/refs/tags/version/$pkgver.tar.gz
@ -174,7 +181,7 @@ source="
go-downgrade-1.22.patch go-downgrade-1.22.patch
" "
builddir="$srcdir/"authentik-version-$pkgver builddir="$srcdir/"authentik-version-$pkgver
subpackages="$pkgname-openrc $pkgname-doc" subpackages="$pkgname-openrc $pkgname-doc $pkgname-pyc"
pkgusers="authentik" pkgusers="authentik"
pkggroups="authentik" pkggroups="authentik"
@ -204,55 +211,126 @@ build() {
npm run build npm run build
} }
check() {
msg "Setting up test environments"
export POSTGRES_DB=authentik
export POSTGRES_USER=authentik
export POSTGRES_PASSWORD="EK-5jnKfjrGRm<77"
export AUTHENTIK_POSTGRESQL__TEST__NAME=authentik
rm -Rf "$srcdir"/tmp
initdb -D "$srcdir"/tmp
postgres -D "$srcdir"/tmp --unix-socket-directories="$srcdir" > "$srcdir"/tmp/psql.log 2>&1 &
valkey-server > "$srcdir"/tmp/valkey.log 2>&1 &
trap "pkill valkey-server; pkill postgres" EXIT
sleep 5
psql -h "$srcdir" -d postgres -c "CREATE ROLE $POSTGRES_USER PASSWORD '$POSTGRES_PASSWORD' INHERIT LOGIN;"
psql -h "$srcdir" -d postgres -c "CREATE DATABASE $POSTGRES_DB OWNER $POSTGRES_USER ENCODING 'UTF-8';"
psql -h "$srcdir" -d postgres -c "CREATE DATABASE test_$POSTGRES_DB OWNER $POSTGRES_USER ENCODING 'UTF-8';"
# .github/actions/setup/action.yml: Generate config + csrf
python3 -c "
from authentik.lib.generators import generate_id
from yaml import safe_dump
with open(\"local.env.yml\", \"w\") as _config:
safe_dump(
{
\"log_level\": \"debug\",
\"secret_key\": generate_id(),
\"csrf\": { \"trusted_origins\": ['https://*']},
},
_config,
default_flow_style=False,
)
"
python -m lifecycle.migrate
# no selenium package
pip install selenium drf_jsonschema_serializer pdoc --break-system-packages
msg "Starting tests"
make test
# TODO: Fix go-tests
# make go-test
pkill valkey-server
pkill postgres
}
package() { package() {
msg "Packaging $pkgname" msg "Packaging $pkgname"
mkdir -p "$pkgdir"/usr/share/webapps/authentik/web local prefix="/usr/share/webapps"
mkdir -p "$pkgdir"/usr/share/webapps/authentik/website local destdir="$pkgdir"$prefix/authentik
mkdir -p "$pkgdir"/var/lib/authentik
mkdir -p "$pkgdir"/usr/share/doc
mkdir -p "$pkgdir"/usr/bin
cp -dr "$builddir"/authentik "$pkgdir"/usr/share/webapps/authentik
cp -dr "$builddir"/web/dist "$pkgdir"/usr/share/webapps/authentik/web/dist
cp -dr "$builddir"/web/authentik "$pkgdir"/usr/share/webapps/authentik/web/authentik
cp -dr "$builddir"/website/build "$pkgdir"/usr/share/doc/authentik
cp -dr "$builddir"/tests "$pkgdir"/usr/share/webapps/authentik/tests
cp -dr "$builddir"/lifecycle "$pkgdir"/usr/share/webapps/authentik/lifecycle
cp -dr "$builddir"/locale "$pkgdir"/usr/share/webapps/authentik/locale
cp -dr "$builddir"/blueprints "$pkgdir"/var/lib/authentik/blueprints
install -Dm755 "$builddir"/manage.py "$pkgdir"/usr/share/webapps/authentik/manage.py
install -Dm755 "$builddir"/server "$pkgdir"/usr/share/webapps/authentik/server
ln -s "/etc/authentik/config.yml" "$pkgdir"/usr/share/webapps/authentik/local.env.yml
install -Dm755 "$builddir"/proxy "$pkgdir"/usr/bin/authentik-proxy # authentik install
install -Dm755 "$builddir"/ldap "$pkgdir"/usr/bin/authentik-ldap install -d -m755 \
install -Dm755 "$builddir"/radius "$pkgdir"/usr/bin/authentik-radius "$destdir" \
"$destdir"/web \
"$pkgdir"/usr/bin \
"$pkgdir"/usr/share/doc \
"$pkgdir"/var/lib/authentik
install -Dm755 "$srcdir"/$pkgname.openrc \ cp -rl authentik lifecycle locale tests \
"$pkgdir"/etc/init.d/$pkgname "$destdir"/
install -Dm755 "$srcdir"/$pkgname-worker.openrc \
"$pkgdir"/etc/init.d/$pkgname-worker cp -rl blueprints \
install -Dm755 "$srcdir"/$pkgname-ldap.openrc \ "$pkgdir"/var/lib/authentik/
"$pkgdir"/etc/init.d/$pkgname-ldap
install -Dm640 "$srcdir"/$pkgname-ldap.conf \ cp -rl web/dist web/authentik \
"$pkgdir"/etc/conf.d/$pkgname-ldap "$destdir"/web/
install -m755 -t "$destdir" \
"$builddir"/server \
"$builddir"/ldap \
"$builddir"/radius \
"$builddir"/proxy \
"$builddir"/manage.py
cp -rl website/build/ "$pkgdir"/usr/share/doc/authentik/
# symbolic bin links to usr/bin
for i in server proxy ldap radius; do
ln -s $prefix/authentik/$i "$pkgdir"/usr/bin/authentik-$i
done
# openrc install
for i in $pkgname $pkgname-worker $pkgname-ldap; do
install -Dm755 "$srcdir"/$i.openrc "$pkgdir"/etc/init.d/$i
done
# config file setup
install -Dm640 "$builddir"/authentik/lib/default.yml \ install -Dm640 "$builddir"/authentik/lib/default.yml \
"$pkgdir"/etc/authentik/config.yml "$pkgdir"/etc/authentik/config.yml
ln -s "/etc/authentik/config.yml" "$pkgdir"/usr/share/webapps/authentik/local.env.yml
chown root:www-data "$pkgdir"/etc/authentik/config.yml chown root:www-data "$pkgdir"/etc/authentik/config.yml
mv "$pkgdir"/usr/share/webapps/authentik/web/dist/custom.css "$pkgdir"/etc/authentik/custom.css
ln -s "/etc/authentik/custom.css" "$pkgdir"/usr/share/webapps/authentik/web/dist/custom.css
chown root:www-data "$pkgdir"/etc/authentik/custom.css
sed -i 's|cert_discovery_dir.*|cert_discovery_dir: /var/lib/authentik/certs|' "$pkgdir"/etc/authentik/config.yml sed -i 's|cert_discovery_dir.*|cert_discovery_dir: /var/lib/authentik/certs|' "$pkgdir"/etc/authentik/config.yml
sed -i 's|blueprints_dir.*|blueprints_dir: /var/lib/authentik/blueprints|' "$pkgdir"/etc/authentik/config.yml sed -i 's|blueprints_dir.*|blueprints_dir: /var/lib/authentik/blueprints|' "$pkgdir"/etc/authentik/config.yml
sed -i 's|template_dir.*|template_dir: /var/lib/authentik/templates|' "$pkgdir"/etc/authentik/config.yml sed -i 's|template_dir.*|template_dir: /var/lib/authentik/templates|' "$pkgdir"/etc/authentik/config.yml
printf "\ncsrf:\n trusted_origins: ['auth.example.com']" >> "$pkgdir"/etc/authentik/config.yml printf "\ncsrf:\n trusted_origins: ['auth.example.com']" >> "$pkgdir"/etc/authentik/config.yml
printf "\nsecret_key: '@@SECRET_KEY@@'" >> "$pkgdir"/etc/authentik/config.yml printf "\nsecret_key: '@@SECRET_KEY@@'" >> "$pkgdir"/etc/authentik/config.yml
# custom css location change
mv "$pkgdir"/usr/share/webapps/authentik/web/dist/custom.css "$pkgdir"/etc/authentik/custom.css
ln -s "/etc/authentik/custom.css" "$pkgdir"/usr/share/webapps/authentik/web/dist/custom.css
chown root:www-data "$pkgdir"/etc/authentik/custom.css
# Install wrapper script to /usr/bin. # Install wrapper script to /usr/bin.
install -m755 -D "$srcdir"/authentik-manage.sh "$pkgdir"/usr/bin/authentik-manage install -m755 -D "$srcdir"/authentik-manage.sh "$pkgdir"/usr/bin/authentik-manage
} }
pyc() {
default_pyc
cd "$pkgdir"
# shellcheck disable=SC3003
local IFS=$'\n'
# shellcheck disable=SC2046
amove $(find usr/share/webapps/authentik -type d -name __pycache__)
}
sha512sums=" sha512sums="
02e54183fa35e7a06780f68239db7b3b5e2ccd3c6e1fcaf97690d9b596077c7a5345dbb5b005f39ff67a0dae83bd9b71d1c6d18ba8fae9cc7174d5d856360bff authentik-2024.8.2.tar.gz 02e54183fa35e7a06780f68239db7b3b5e2ccd3c6e1fcaf97690d9b596077c7a5345dbb5b005f39ff67a0dae83bd9b71d1c6d18ba8fae9cc7174d5d856360bff authentik-2024.8.2.tar.gz
4defb4fe3a4230f4aa517fbecd5e5b8bcef2a64e1b40615660ae9eec33597310a09df5e126f4d39ce7764bd1716c0a7040637699135c103cbc1879593c6c06f1 authentik.openrc 4defb4fe3a4230f4aa517fbecd5e5b8bcef2a64e1b40615660ae9eec33597310a09df5e126f4d39ce7764bd1716c0a7040637699135c103cbc1879593c6c06f1 authentik.openrc

View file

@ -0,0 +1,60 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-sentry-sdk
pkgver=2.14.0
pkgrel=0
pkgdesc="The new Python SDK for Sentry.io"
url="https://sentry.io/for/python/"
arch="noarch"
license="BSD-2-Clause"
depends="
py3-certifi
py3-urllib3
"
makedepends="
py3-gpep517
py3-setuptools
py3-wheel
"
checkdepends="
py3-executing
py3-jsonschema
py3-pytest-asyncio
py3-pytest-forked
py3-pytest-localserver
py3-pytest-xdist
py3-responses
py3-werkzeug
"
subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/getsentry/sentry-python/archive/$pkgver.tar.gz"
builddir="$srcdir"/sentry-python-$pkgver
options="!check" # a bunch of deprecation-warning failures and improper shutdown.. seems to need net
build() {
gpep517 build-wheel \
--wheel-dir .dist \
--output-fd 3 3>&1 >&2
}
check() {
python3 -m venv --clear --without-pip --system-site-packages .testenv
.testenv/bin/python3 -m installer .dist/*.whl
# gcp: pip install
# test_socket/test_requests: needs net
# wsgi: weird list errors
.testenv/bin/python3 -m pytest -n auto -p no:warnings \
--deselect tests/integrations/gcp/test_gcp.py \
--deselect tests/integrations/socket/test_socket.py \
--deselect tests/integrations/requests/test_requests.py \
--deselect tests/integrations/wsgi/test_wsgi.py
}
package() {
python3 -m installer -d "$pkgdir" \
.dist/*.whl
}
sha512sums="
8667c3496cdbd6b3055f8046abcf3faa8afbda04e0551787222d44c7736deea95722251c266c21730a73afd57d4b7447ec17408672c3217af35103bba6f4b513 py3-sentry-sdk-2.14.0.tar.gz
"