mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
74a7e96409
* ci: add integration containers for duo and haproxy This change utilises specific integration containers for the DuoPush and HAProxy suites. In the case of DuoPush suite specifically in dev mode the container will be built on suite startup. * ci: factorize pre-command hook and unset async on trigger steps
114 lines
4.5 KiB
Bash
Executable File
114 lines
4.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
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
|
|
BUILD_DUO=$(git diff --name-only HEAD~1 | grep -q ^internal/suites/example/compose/duo-api/.* && echo true || echo false)
|
|
BUILD_HAPROXY=$(git diff --name-only HEAD~1 | grep -q ^internal/suites/example/compose/haproxy/Dockerfile && echo true || echo false)
|
|
CI_BYPASS=$(git diff --name-only HEAD~1 | sed -rn '/^(CODE_OF_CONDUCT\.md|CONTRIBUTING\.md|README\.md|SECURITY\.md|crowdin\.yml|\.all-contributorsrc|\.editorconfig|\.github\/.*|docs\/.*|examples\/.*)/!{q1}' && echo true || echo false)
|
|
else
|
|
BUILD_DUO=$(git diff --name-only `git merge-base --fork-point origin/master` | grep -q ^internal/suites/example/compose/duo-api/.* && echo true || echo false)
|
|
BUILD_HAPROXY=$(git diff --name-only `git merge-base --fork-point origin/master` | grep -q ^internal/suites/example/compose/haproxy/Dockerfile && echo true || echo false)
|
|
CI_BYPASS=$(git diff --name-only `git merge-base --fork-point origin/master` | sed -rn '/^(CODE_OF_CONDUCT\.md|CONTRIBUTING\.md|README\.md|SECURITY\.md|crowdin\.yml|\.all-contributorsrc|\.editorconfig|\.github\/.*|docs\/.*|examples\/.*)/!{q1}' && echo true || echo false)
|
|
fi
|
|
|
|
if [[ "${CI_BYPASS}" == "true" ]]; then
|
|
cat .buildkite/annotations/bypass | buildkite-agent annotate --style "info" --context "ctx-info"
|
|
fi
|
|
else
|
|
BUILD_DUO="false"
|
|
BUILD_HAPROXY="false"
|
|
CI_BYPASS="false"
|
|
fi
|
|
else
|
|
BUILD_DUO="false"
|
|
BUILD_HAPROXY="false"
|
|
CI_BYPASS="false"
|
|
fi
|
|
|
|
cat << EOF
|
|
env:
|
|
BUILD_DUO: ${BUILD_DUO}
|
|
BUILD_HAPROXY: ${BUILD_HAPROXY}
|
|
CI_BYPASS: ${CI_BYPASS}
|
|
|
|
steps:
|
|
- label: ":service_dog: Linting"
|
|
command: "reviewdog -reporter=github-check -filter-mode=nofilter -fail-on-error"
|
|
if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.message !~ /\[(skip test|test skip)\]/
|
|
|
|
- label: ":hammer_and_wrench: Unit Test"
|
|
command: "authelia-scripts --log-level debug ci --buildkite"
|
|
agents:
|
|
build: "unit-test"
|
|
artifact_paths:
|
|
- "authelia-*.tar.gz"
|
|
- "authelia-*.tar.gz.sha256"
|
|
key: "unit-test"
|
|
if: build.env("CI_BYPASS") != "true"
|
|
|
|
- wait:
|
|
if: build.env("CI_BYPASS") != "true"
|
|
EOF
|
|
if [[ "${BUILD_DUO}" == "true" ]]; then
|
|
cat << EOF
|
|
- label: ":rocket: Trigger Pipeline [integration-duo]"
|
|
trigger: "integration-duo"
|
|
build:
|
|
message: "${BUILDKITE_MESSAGE}"
|
|
commit: "${BUILDKITE_COMMIT}"
|
|
branch: "${BUILDKITE_BRANCH}"
|
|
env:
|
|
BUILDKITE_PULL_REQUEST: "${BUILDKITE_PULL_REQUEST}"
|
|
BUILDKITE_PULL_REQUEST_BASE_BRANCH: "${BUILDKITE_PULL_REQUEST_BASE_BRANCH}"
|
|
BUILDKITE_PULL_REQUEST_REPO: "${BUILDKITE_PULL_REQUEST_REPO}"
|
|
depends_on: ~
|
|
EOF
|
|
fi
|
|
if [[ "${BUILD_HAPROXY}" == "true" ]]; then
|
|
cat << EOF
|
|
- label: ":rocket: Trigger Pipeline [integration-haproxy]"
|
|
trigger: "integration-haproxy"
|
|
build:
|
|
message: "${BUILDKITE_MESSAGE}"
|
|
commit: "${BUILDKITE_COMMIT}"
|
|
branch: "${BUILDKITE_BRANCH}"
|
|
env:
|
|
BUILDKITE_PULL_REQUEST: "${BUILDKITE_PULL_REQUEST}"
|
|
BUILDKITE_PULL_REQUEST_BASE_BRANCH: "${BUILDKITE_PULL_REQUEST_BASE_BRANCH}"
|
|
BUILDKITE_PULL_REQUEST_REPO: "${BUILDKITE_PULL_REQUEST_REPO}"
|
|
depends_on: ~
|
|
EOF
|
|
fi
|
|
cat << EOF
|
|
- label: ":docker: Build Image [coverage]"
|
|
command: "authelia-scripts docker build --container=coverage"
|
|
retry:
|
|
manual:
|
|
permit_on_passed: true
|
|
agents:
|
|
build: "linux-coverage"
|
|
artifact_paths:
|
|
- "authelia-image-coverage.tar.zst"
|
|
depends_on: ~
|
|
key: "build-docker-linux-coverage"
|
|
if: build.env("CI_BYPASS") != "true" && build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.message !~ /\[(skip test|test skip)\]/
|
|
|
|
- label: ":debian: Package Builds"
|
|
command: ".buildkite/steps/debpackages.sh | buildkite-agent pipeline upload"
|
|
depends_on: ~
|
|
if: build.branch !~ /^(dependabot|renovate)\/.*/ && build.env("CI_BYPASS") != "true"
|
|
|
|
- wait:
|
|
if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.env("CI_BYPASS") != "true" && build.message !~ /\[(skip test|test skip)\]/
|
|
|
|
- label: ":chrome: Integration Tests"
|
|
command: ".buildkite/steps/e2etests.sh | buildkite-agent pipeline upload"
|
|
depends_on:
|
|
- "build-docker-linux-coverage"
|
|
if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ && build.env("CI_BYPASS") != "true" && build.message !~ /\[(skip test|test skip)\]/
|
|
EOF
|