diff --git a/.buildkite/annotations/artifacts b/.buildkite/annotations/artifacts
index b9aad80b..c4d3e9ba 100644
--- a/.buildkite/annotations/artifacts
+++ b/.buildkite/annotations/artifacts
@@ -4,21 +4,27 @@
diff --git a/.buildkite/deployment.sh b/.buildkite/deployment.sh
index ad79b3f0..22f2e895 100755
--- a/.buildkite/deployment.sh
+++ b/.buildkite/deployment.sh
@@ -3,9 +3,9 @@ set -u
DIVERGED=$(git merge-base --fork-point origin/master > /dev/null; echo $?)
-if [[ $DIVERGED == 0 ]]; then
- if [[ $BUILDKITE_TAG == "" ]]; then
- if [[ $BUILDKITE_BRANCH == "master" ]]; then
+if [[ "${DIVERGED}" == 0 ]]; then
+ if [[ "${BUILDKITE_TAG}" == "" ]]; then
+ if [[ "${BUILDKITE_BRANCH}" == "master" ]]; then
CI_BYPASS=$(git diff --name-only HEAD~1 | sed -rn '/^(CONTRIBUTING.md|README.md|SECURITY.md|\.all-contributorsrc|\.github\/.*|docs\/.*)/!{q1}' && echo true || echo false)
else
CI_BYPASS=$(git diff --name-only `git merge-base --fork-point origin/master` | sed -rn '/^(CONTRIBUTING.md|README.md|SECURITY.md|\.all-contributorsrc|\.github\/.*|docs\/.*)/!{q1}' && echo true || echo false)
@@ -43,6 +43,9 @@ steps:
- "build-docker-linux-amd64"
- "build-docker-linux-arm32v7"
- "build-docker-linux-arm64v8"
+ - "build-deb-package-amd64"
+ - "build-deb-package-armhf"
+ - "build-deb-package-arm64"
retry:
automatic: true
agents:
diff --git a/.buildkite/hooks/post-checkout b/.buildkite/hooks/post-checkout
index 8c77838d..7c86bf24 100755
--- a/.buildkite/hooks/post-checkout
+++ b/.buildkite/hooks/post-checkout
@@ -4,14 +4,14 @@ set +u
git fetch -q
-if [[ ! $BUILDKITE_COMMAND =~ "buildkite-agent pipeline upload" ]] || \
-[[ $BUILDKITE_COMMAND == ".buildkite/steps/e2etests.sh | buildkite-agent pipeline upload" ]]; then
+if [[ ! "${BUILDKITE_COMMAND}" =~ "buildkite-agent pipeline upload" ]] || \
+[[ "${BUILDKITE_COMMAND}" == ".buildkite/steps/e2etests.sh | buildkite-agent pipeline upload" ]]; then
echo "--- :buildkite: Setting up Build environment"
source bootstrap.sh
- if [[ $BUILDKITE_COMMAND == "authelia-scripts --log-level debug ci" ]]; then
+ if [[ "${BUILDKITE_COMMAND}" == "authelia-scripts --log-level debug ci" ]]; then
go mod download
fi
- if [[ $BUILDKITE_LABEL =~ ":selenium:" ]]; then
+ if [[ "${BUILDKITE_LABEL}" =~ ":selenium:" ]]; then
go mod download
fi
fi
\ No newline at end of file
diff --git a/.buildkite/hooks/post-command b/.buildkite/hooks/post-command
index 65e96ef0..f8278b7a 100755
--- a/.buildkite/hooks/post-command
+++ b/.buildkite/hooks/post-command
@@ -2,28 +2,28 @@
set +u
-if [[ $BUILDKITE_PULL_REQUEST != "false" ]]; then
- if [[ $BUILDKITE_LABEL == ":service_dog: Linting" ]]; then
+if [[ "${BUILDKITE_PULL_REQUEST}" != "false" ]]; then
+ if [[ "${BUILDKITE_LABEL}" == ":service_dog: Linting" ]]; then
echo "--- :go::service_dog: Provide in-line commentary for pull request"
reviewdog -reporter=github-pr-review
fi
fi
-if [[ ! $BUILDKITE_BRANCH =~ ^(v.*) ]] && [[ $BUILDKITE_COMMAND_EXIT_STATUS == 0 ]]; then
- if [[ $BUILDKITE_LABEL == ":hammer_and_wrench: Unit Test" ]] || [[ $BUILDKITE_LABEL =~ ":selenium:" ]]; then
+if [[ ! "${BUILDKITE_BRANCH}" =~ ^(v.*) ]] && [[ "${BUILDKITE_COMMAND_EXIT_STATUS}" == 0 ]]; then
+ if [[ "${BUILDKITE_LABEL}" == ":hammer_and_wrench: Unit Test" ]] || [[ "${BUILDKITE_LABEL}" =~ ":selenium:" ]]; then
echo "--- :codecov: Upload coverage reports"
- if [[ $BUILDKITE_AGENT_META_DATA_CODECOV == "verbose" ]]; then
+ if [[ "${BUILDKITE_AGENT_META_DATA_CODECOV}" == "verbose" ]]; then
BUILDKITE_AGENT_META_DATA_CODECOV="-v"
fi
- bash <(curl -s --connect-timeout 10 --retry 10 --retry-max-time 0 https://codecov.io/bash) -Z -c -s 'coverage*.txt' -F backend ${BUILDKITE_AGENT_META_DATA_CODECOV}
- if [[ $BUILDKITE_LABEL =~ ":selenium:" ]]; then
+ bash <(curl -s --connect-timeout 10 --retry 10 --retry-max-time 0 https://codecov.io/bash) -Z -c -s 'coverage*.txt' -F backend "${BUILDKITE_AGENT_META_DATA_CODECOV}"
+ if [[ "${BUILDKITE_LABEL}" =~ ":selenium:" ]]; then
cd web && yarn report
fi
- bash <(curl -s --connect-timeout 10 --retry 10 --retry-max-time 0 https://codecov.io/bash) -Z -c -f '!*.go' -f '!*.zst' -F frontend ${BUILDKITE_AGENT_META_DATA_CODECOV}
+ bash <(curl -s --connect-timeout 10 --retry 10 --retry-max-time 0 https://codecov.io/bash) -Z -c -f '!*.go' -f '!*.zst' -F frontend "${BUILDKITE_AGENT_META_DATA_CODECOV}"
fi
fi
-if [[ $BUILDKITE_LABEL =~ ":selenium:" ]] || [[ $BUILDKITE_LABEL =~ ":docker: Build Image" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":selenium:" ]] || [[ "${BUILDKITE_LABEL}" =~ ":docker: Build Image" ]]; then
CONTAINERS=$(docker ps -a -q)
if [[ ${CONTAINERS} != "" ]]; then
echo "--- :docker: Remove lingering containers"
@@ -31,16 +31,16 @@ if [[ $BUILDKITE_LABEL =~ ":selenium:" ]] || [[ $BUILDKITE_LABEL =~ ":docker: Bu
fi
fi
-if [[ $BUILDKITE_LABEL == ":docker: Image Deployments" ]]; then
+if [[ "${BUILDKITE_LABEL}" == ":docker: Image Deployments" ]]; then
cat .buildkite/annotations/artifacts | buildkite-agent annotate --style "success" --context "ctx-success"
fi
-if [[ $BUILDKITE_LABEL =~ ":docker: Deploy" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":docker: Deploy" ]]; then
docker logout
docker logout ghcr.io
fi
-if [[ $BUILDKITE_LABEL == ":docker: Deploy Manifests" ]] && [[ $BUILDKITE_BRANCH == "master" ]] && [[ $BUILDKITE_PULL_REQUEST == "false" ]]; then
+if [[ "${BUILDKITE_LABEL}" == ":docker: Deploy Manifests" ]] && [[ "${BUILDKITE_BRANCH}" == "master" ]] && [[ "${BUILDKITE_PULL_REQUEST}" == "false" ]]; then
echo "--- :docker: Removing tags for deleted branches"
anontoken=$(curl -fsL --retry 3 'https://auth.docker.io/token?service=registry.docker.io&scope=repository:authelia/authelia:pull' | jq -r .token)
authtoken=$(curl -fs --retry 3 -H "Content-Type: application/json" -X "POST" -d '{"username": "'${DOCKER_USERNAME}'", "password": "'${DOCKER_PASSWORD}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
diff --git a/.buildkite/hooks/pre-artifact b/.buildkite/hooks/pre-artifact
index f2b230d8..86c916e6 100755
--- a/.buildkite/hooks/pre-artifact
+++ b/.buildkite/hooks/pre-artifact
@@ -4,21 +4,33 @@ set +u
DOCKER_IMAGE=authelia/authelia
-if [[ $BUILDKITE_LABEL == ":hammer_and_wrench: Unit Test" ]]; then
+if [[ "${BUILDKITE_LABEL}" == ":hammer_and_wrench: Unit Test" ]]; then
tar -czf authelia-public_html.tar.gz -C dist public_html
sha256sum authelia-public_html.tar.gz > authelia-public_html.tar.gz.sha256
fi
-if [[ $BUILDKITE_LABEL =~ ":docker: Build Image" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":docker: Build Image" ]]; then
echo "--- :docker: Saving artifacts for :buildkite: :docker: :github: releases"
# Save binary for buildkite and github artifacts
if [[ "${ARCH}" != "coverage" ]]; then
- docker create --name authelia-binary ${DOCKER_IMAGE}:latest
- docker cp authelia-binary:/app/authelia ./authelia-"${OS}"-"${ARCH}"
+ docker create --name authelia-binary "${DOCKER_IMAGE}:latest"
+ docker cp authelia-binary:/app/authelia "./authelia-${OS}-${ARCH}"
docker rm -f authelia-binary
- tar -czf authelia-"${OS}"-"${ARCH}".tar.gz authelia-"${OS}"-"${ARCH}" authelia.service config.template.yml
- sha256sum authelia-"${OS}"-"${ARCH}".tar.gz > authelia-"${OS}"-"${ARCH}".tar.gz.sha256
+ tar -czf "authelia-${OS}-${ARCH}.tar.gz" "authelia-${OS}-${ARCH}" authelia.service config.template.yml
+ sha256sum "authelia-${OS}-${ARCH}.tar.gz" > "authelia-${OS}-${ARCH}.tar.gz.sha256"
fi
# Saving image for push to docker hub
- docker save ${DOCKER_IMAGE} | zstdmt -T0 -12 > authelia-image-"${ARCH}".tar.zst
+ docker save "${DOCKER_IMAGE}" | zstdmt -T0 -12 > "authelia-image-${ARCH}.tar.zst"
+fi
+
+if [[ "${BUILDKITE_LABEL}" =~ ":debian: Build Package" ]]; then
+ if [[ "${BUILDKITE_TAG}" != "" ]]; then
+ echo "--- :debian: Saving artifacts for :github: release"
+ for f in *.deb; do mv "$f" "$(echo "$f" | sed s/${BUILDKITE_TAG//v}-1_//)"; done
+ else
+ echo "--- :debian: Saving artifacts for :buildkite: release"
+ VERSION=$(git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')
+ for f in *.deb; do mv "$f" "$(echo "$f" | sed s/${VERSION}-1_//)"; done
+ fi
+ sha256sum "authelia_${PACKAGE}.deb" > "authelia_${PACKAGE}.deb.sha256"
fi
\ No newline at end of file
diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command
index 399bd8ed..fe0594ac 100755
--- a/.buildkite/hooks/pre-command
+++ b/.buildkite/hooks/pre-command
@@ -2,29 +2,34 @@
set +u
-if [[ $BUILDKITE_LABEL == ":service_dog: Linting" ]]; then
+if [[ "${BUILDKITE_LABEL}" == ":service_dog: Linting" ]]; then
cd web && yarn install && cd ../
fi
-if [[ $BUILDKITE_LABEL =~ ":selenium:" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":selenium:" ]]; then
DEFAULT_ARCH=coverage
echo "--- :docker: Extract, load and tag build container"
buildkite-agent artifact download "authelia-image-${DEFAULT_ARCH}*" .
- zstdcat authelia-image-${DEFAULT_ARCH}.tar.zst | docker load
+ zstdcat "authelia-image-${DEFAULT_ARCH}.tar.zst" | docker load
docker tag authelia/authelia authelia:dist
fi
-if [[ $BUILDKITE_LABEL =~ ":docker: Build Image" ]] && [[ "${ARCH}" != "coverage" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":docker: Build Image" ]] && [[ "${ARCH}" != "coverage" ]]; then
echo "--- :react: :swagger: Extract frontend assets"
buildkite-agent artifact download "authelia-public_html.tar.gz" .
tar xzf authelia-public_html.tar.gz
fi
-if [[ $BUILDKITE_LABEL =~ ":docker: Deploy Image" ]]; then
- buildkite-agent artifact download "authelia-image-${ARCH}*" .
- zstdcat authelia-image-"${ARCH}".tar.zst | docker load
+if [[ "${BUILDKITE_LABEL}" =~ ":debian: Build Package" ]]; then
+ buildkite-agent artifact download "authelia-linux-${ARCH}.tar.gz" .
fi
-if [[ $BUILDKITE_LABEL == ":github: Deploy Artifacts" ]]; then
+if [[ "${BUILDKITE_LABEL}" =~ ":docker: Deploy Image" ]]; then
+ buildkite-agent artifact download "authelia-image-${ARCH}*" .
+ zstdcat "authelia-image-${ARCH}.tar.zst" | docker load
+fi
+
+if [[ "${BUILDKITE_LABEL}" == ":github: Deploy Artifacts" ]]; then
buildkite-agent artifact download "authelia-*.tar.gz*" .
+ buildkite-agent artifact download "authelia_*.deb*" .
fi
\ No newline at end of file
diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit
index 169152b8..d5c6a60e 100755
--- a/.buildkite/hooks/pre-exit
+++ b/.buildkite/hooks/pre-exit
@@ -2,7 +2,7 @@
set +u
-if [[ $BUILDKITE_AGENT_META_DATA_CLEANBUILD != "false" ]]; then
+if [[ "${BUILDKITE_AGENT_META_DATA_CLEANBUILD}" != "false" ]]; then
echo "--- :docker: Clean environment"
docker system prune -af --volumes
fi
\ No newline at end of file
diff --git a/.buildkite/pipeline.sh b/.buildkite/pipeline.sh
index ebc9b357..d432c218 100755
--- a/.buildkite/pipeline.sh
+++ b/.buildkite/pipeline.sh
@@ -3,9 +3,9 @@ set -u
DIVERGED=$(git merge-base --fork-point origin/master > /dev/null; echo $?)
-if [[ $DIVERGED == 0 ]]; then
- if [[ $BUILDKITE_TAG == "" ]]; then
- if [[ $BUILDKITE_BRANCH == "master" ]]; then
+if [[ "${DIVERGED}" == 0 ]]; then
+ if [[ "${BUILDKITE_TAG}" == "" ]]; then
+ if [[ "${BUILDKITE_BRANCH}" == "master" ]]; then
CI_BYPASS=$(git diff --name-only HEAD~1 | sed -rn '/^(CONTRIBUTING.md|README.md|SECURITY.md|\.all-contributorsrc|\.github\/.*|docs\/.*)/!{q1}' && echo true || echo false)
else
CI_BYPASS=$(git diff --name-only `git merge-base --fork-point origin/master` | sed -rn '/^(CONTRIBUTING.md|README.md|SECURITY.md|\.all-contributorsrc|\.github\/.*|docs\/.*)/!{q1}' && echo true || echo false)
@@ -52,6 +52,20 @@ steps:
depends_on: ~
if: build.env("CI_BYPASS") != "true"
+ - label: ":debian: Package Builds"
+ command: ".buildkite/steps/debpackages.sh | buildkite-agent pipeline upload"
+ depends_on: ~
+ if: build.env("CI_BYPASS") != "true"
+
+ - wait:
+ if: build.env("CI_BYPASS") != "true"
+
+ - label: ":vertical_traffic_light: Build Concurrency Gate"
+ command: "echo End of concurrency gate"
+ concurrency: 3
+ concurrency_group: "builds"
+ if: build.env("CI_BYPASS") != "true"
+
- wait:
if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.env("CI_BYPASS") != "true"
@@ -62,4 +76,13 @@ steps:
depends_on:
- "build-docker-linux-coverage"
if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.env("CI_BYPASS") != "true"
+
+ - wait:
+ if: build.env("CI_BYPASS") != "true"
+
+ - label: ":vertical_traffic_light: Test Concurrency Gate"
+ command: "echo End of concurrency gate"
+ concurrency: 3
+ concurrency_group: "tests"
+ if: build.env("CI_BYPASS") != "true"
EOF
\ No newline at end of file
diff --git a/.buildkite/steps/aurhelper.sh b/.buildkite/steps/aurhelper.sh
index f57b9931..99560429 100755
--- a/.buildkite/steps/aurhelper.sh
+++ b/.buildkite/steps/aurhelper.sh
@@ -1,4 +1,4 @@
-#! /usr/bin/env bash
+#!/usr/bin/env bash
GITTAG=$(git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')
@@ -6,20 +6,20 @@ echo "--- :linux: Deploy AUR package: ${PACKAGE}"
git clone ssh://aur@aur.archlinux.org/"${PACKAGE}".git
cd "${PACKAGE}" || exit
-if [[ $PACKAGE != "authelia-git" ]]; then
- sed -i "/pkgver=/c\pkgver=${BUILDKITE_TAG//v/}" PKGBUILD && \
- sed -i "/pkgrel=/c\pkgrel=1" PKGBUILD && \
+if [[ "${PACKAGE}" != "authelia-git" ]]; then
+ sed -i -e "/pkgver=/c pkgver=${BUILDKITE_TAG//v/}" \
+ -e '/pkgrel=/c pkgrel=1' PKGBUILD && \
docker run --rm -v $PWD:/build authelia/aurpackager bash -c "cd /build && updpkgsums"
else
- sed -i "/pkgver=/c\pkgver=${GITTAG}" PKGBUILD && \
- sed -i "/pkgrel=/c\pkgrel=1" PKGBUILD
+ sed -i -e "/pkgver=/c pkgver=${GITTAG}" \
+ -e '/pkgrel=/c pkgrel=1' PKGBUILD
fi
docker run --rm -v $PWD:/build authelia/aurpackager bash -c "cd /build && makepkg --printsrcinfo >| .SRCINFO" && \
git add . && \
-if [[ $PACKAGE != "authelia-git" ]]; then
+if [[ "${PACKAGE}" != "authelia-git" ]]; then
git commit -m "Update to ${BUILDKITE_TAG}"
else
git commit -m "Update to GIT version: ${GITTAG}"
fi
-git push
\ No newline at end of file
+git push
diff --git a/.buildkite/steps/buildimages.sh b/.buildkite/steps/buildimages.sh
index c031e039..53d5cf68 100755
--- a/.buildkite/steps/buildimages.sh
+++ b/.buildkite/steps/buildimages.sh
@@ -37,13 +37,4 @@ cat << EOF
EOF
fi
done
-done
-cat << EOF
-
- - wait
-
- - label: ":vertical_traffic_light: Build Concurrency Gate"
- command: "echo End of concurrency gate"
- concurrency: 3
- concurrency_group: "builds"
-EOF
\ No newline at end of file
+done
\ No newline at end of file
diff --git a/.buildkite/steps/debhelper.sh b/.buildkite/steps/debhelper.sh
new file mode 100755
index 00000000..a01cdfc8
--- /dev/null
+++ b/.buildkite/steps/debhelper.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+GITTAG=$(git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g')
+
+if [[ "${BUILDKITE_TAG}" == "" ]]; then
+ VERSION="pkgver=${GITTAG}"
+else
+ VERSION="pkgver=${BUILDKITE_TAG//v/}"
+fi
+
+wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=authelia-bin -qO PKGBUILD && \
+sed -i -e '/^pkgname=/c pkgname=authelia' -e "/pkgver=/c $VERSION" -e '10,14d' \
+-e 's/source_x86_64.*/source_x86_64=("authelia-linux-amd64.tar.gz")/' \
+-e 's/source_aarch64.*/source_aarch64=("authelia-linux-arm64v8.tar.gz")/' \
+-e 's/source_armv7h.*/source_armv7h=("authelia-linux-arm32v7.tar.gz")/' \
+-e 's/sha256sums_x86_64.*/sha256sums_x86_64=("SKIP")/' \
+-e 's/sha256sums_aarch64.*/sha256sums_aarch64=("SKIP")/' \
+-e 's/sha256sums_armv7h.*/sha256sums_armv7h=("SKIP")/' PKGBUILD
+
+if [[ "${PACKAGE}" == "amd64" ]]; then
+ docker run --rm -v $PWD:/build authelia/aurpackager bash -c "cd /build && makedeb"
+elif [[ "${PACKAGE}" == "armhf" ]]; then
+ docker run --rm -v $PWD:/build nightah/debpackager:armhf bash -c "cd /build && makedeb"
+else
+ docker run --rm -v $PWD:/build nightah/debpackager:arm64 bash -c "cd /build && makedeb"
+fi
diff --git a/.buildkite/steps/debpackages.sh b/.buildkite/steps/debpackages.sh
new file mode 100755
index 00000000..a805f1a8
--- /dev/null
+++ b/.buildkite/steps/debpackages.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+set -eu
+
+for DEB_PACKAGE in amd64 armhf arm64; do
+cat << EOF
+ - label: ":debian: Build Package [${DEB_PACKAGE}]"
+ command: "debhelper.sh"
+ artifact_paths:
+ - "*.deb"
+ - "*.deb.sha256"
+ env:
+ PACKAGE: "${DEB_PACKAGE}"
+EOF
+if [[ "${DEB_PACKAGE}" == "amd64" ]]; then
+cat << EOF
+ ARCH: "${DEB_PACKAGE}"
+ depends_on:
+ - "build-docker-linux-amd64"
+EOF
+elif [[ "${DEB_PACKAGE}" == "armhf" ]]; then
+cat << EOF
+ ARCH: "arm32v7"
+ depends_on:
+ - "build-docker-linux-arm32v7"
+EOF
+else
+cat << EOF
+ ARCH: "arm64v8"
+ depends_on:
+ - "build-docker-linux-arm64v8"
+EOF
+fi
+cat << EOF
+ key: "build-deb-package-${DEB_PACKAGE}"
+EOF
+done
\ No newline at end of file
diff --git a/.buildkite/steps/e2etests.sh b/.buildkite/steps/e2etests.sh
index 326a5c57..7195187f 100755
--- a/.buildkite/steps/e2etests.sh
+++ b/.buildkite/steps/e2etests.sh
@@ -29,13 +29,4 @@ cat << EOF
suite: "all"
EOF
fi
-done
-cat << EOF
-
- - wait
-
- - label: ":vertical_traffic_light: Test Concurrency Gate"
- command: "echo End of concurrency gate"
- concurrency: 3
- concurrency_group: "tests"
-EOF
\ No newline at end of file
+done
\ No newline at end of file
diff --git a/.buildkite/steps/ghartifacts.sh b/.buildkite/steps/ghartifacts.sh
index 50af9d41..2db18102 100755
--- a/.buildkite/steps/ghartifacts.sh
+++ b/.buildkite/steps/ghartifacts.sh
@@ -14,10 +14,20 @@ do
artifacts+=(-a "${FILE/authelia-/authelia-${BUILDKITE_TAG}-}")
done
+for FILE in \
+ authelia_amd64.deb authelia_amd64.deb.sha256 \
+ authelia_arm64.deb authelia_arm64.deb.sha256 \
+ authelia_armhf.deb authelia_armhf.deb.sha256;
+do
+ # Add the version to the artifact name
+ mv $FILE ${FILE/authelia_/authelia_${BUILDKITE_TAG}_}
+ artifacts+=(-a "${FILE/authelia_/authelia_${BUILDKITE_TAG}_}")
+done
+
echo "--- :github: Deploy artifacts for release: ${BUILDKITE_TAG}"
hub release create "${BUILDKITE_TAG}" "${artifacts[@]}" -F <(echo -e "${BUILDKITE_TAG}\n$(conventional-changelog -p angular -o /dev/stdout -r 2 | sed -e '1,3d')\n\n### Docker Container\n* \`docker pull authelia/authelia:${BUILDKITE_TAG//v}\`\n* \`docker pull ghcr.io/authelia/authelia:${BUILDKITE_TAG//v}\`"); EXIT=$?
-if [[ $EXIT == 0 ]];
+if [[ "${EXIT}" == 0 ]];
then
exit
else
diff --git a/README.md b/README.md
index 2f40cbff..161b9455 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,8 @@ The following is a simple diagram of the architecture:
**Authelia** can be installed as a standalone service from the [AUR](https://aur.archlinux.org/packages/authelia/),
[FreeBSD Ports](https://svnweb.freebsd.org/ports/head/www/authelia/), or using a
-[Static binary](https://github.com/authelia/authelia/releases/latest), [Docker] or [Kubernetes] either manually or via
+[Static binary](https://github.com/authelia/authelia/releases/latest),
+[.deb package]((https://github.com/authelia/authelia/releases/latest)), [Docker] or [Kubernetes] either manually or via
the Helm [Chart](https://charts.authelia.com) (beta) leveraging ingress controllers and ingress configurations.
@@ -38,8 +39,6 @@ the Helm [Chart](https://charts.authelia.com) (beta) leveraging ingress controll
-***Help Wanted:*** Assistance to publish a [Debian package](https://github.com/authelia/authelia/issues/573) would be greatly appreciated.
-
Here is what Authelia's portal looks like: