mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
f781d63b2c
If we have multiple builds to master that intend to deploy AUR packages or documentation, we must ensure that the jobs are locked and executed sequentially, not simultaneously. If they were to run simultaneously this has the ability to cause a race condition when attempting to commit the respective steps.
77 lines
2.3 KiB
Bash
Executable File
77 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -u
|
|
|
|
DIVERGED=$(git merge-base --fork-point origin/master > /dev/null; echo $?)
|
|
|
|
if [[ $DIVERGED -eq 0 ]]; then
|
|
if [[ $BUILDKITE_TAG == "" ]]; then
|
|
if [[ $BUILDKITE_BRANCH == "master" ]]; then
|
|
CI_BYPASS=$(git diff --name-only HEAD~1 | sed -rn '/^(BREAKING.md|CONTRIBUTING.md|README.md|docs\/.*)/!{q1}' && echo true || echo false)
|
|
else
|
|
CI_BYPASS=$(git diff --name-only `git merge-base --fork-point origin/master` | sed -rn '/^(BREAKING.md|CONTRIBUTING.md|README.md|docs\/.*)/!{q1}' && echo true || echo false)
|
|
fi
|
|
else
|
|
CI_BYPASS="false"
|
|
fi
|
|
else
|
|
CI_BYPASS="false"
|
|
fi
|
|
|
|
cat << EOF
|
|
env:
|
|
CI_BYPASS: ${CI_BYPASS}
|
|
|
|
steps:
|
|
- label: ":docker: Image Deployments"
|
|
command: ".buildkite/steps/deployimages.sh | buildkite-agent pipeline upload"
|
|
concurrency: 1
|
|
concurrency_group: "deployments"
|
|
if: build.branch == "master" && build.env("CI_BYPASS") != "true"
|
|
|
|
- label: ":docker: Image Deployments"
|
|
command: ".buildkite/steps/deployimages.sh | buildkite-agent pipeline upload"
|
|
if: build.branch != "master" && build.env("CI_BYPASS") != "true"
|
|
|
|
- wait:
|
|
if: build.env("CI_BYPASS") != "true"
|
|
|
|
- label: ":docker: Deploy Manifests"
|
|
command: "authelia-scripts docker push-manifest"
|
|
concurrency: 1
|
|
concurrency_group: "deployments"
|
|
env:
|
|
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
|
if: build.branch == "master" && build.env("CI_BYPASS") != "true"
|
|
|
|
- label: ":docker: Deploy Manifests"
|
|
command: "authelia-scripts docker push-manifest"
|
|
env:
|
|
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
|
if: build.branch != "master" && build.env("CI_BYPASS") != "true"
|
|
|
|
- label: ":github: Deploy Artifacts"
|
|
command: "ghartifacts.sh"
|
|
depends_on: ~
|
|
retry:
|
|
automatic: true
|
|
agents:
|
|
upload: "fast"
|
|
key: "artifacts"
|
|
if: build.tag != null
|
|
|
|
- label: ":linux: Deploy AUR"
|
|
command: ".buildkite/steps/aurpackages.sh | buildkite-agent pipeline upload"
|
|
concurrency: 1
|
|
concurrency_group: "aur"
|
|
depends_on: ~
|
|
if: build.tag != null || build.branch == "master" && build.env("CI_BYPASS") != "true"
|
|
|
|
- label: ":book: Deploy Documentation"
|
|
command: "syncdoc.sh"
|
|
concurrency: 1
|
|
concurrency_group: "documentation"
|
|
depends_on: ~
|
|
agents:
|
|
upload: "fast"
|
|
if: build.branch == "master"
|
|
EOF |