#!/usr/bin/env bash set -eu declare -A BUILDS=(["linux"]="amd64 arm32v7 arm64v8 coverage") for BUILD_OS in "${!BUILDS[@]}"; do for BUILD_ARCH in ${BUILDS[$BUILD_OS]}; do cat << EOF - label: ":docker: Build Image [${BUILD_ARCH}]" command: "authelia-scripts docker build --arch=${BUILD_ARCH}" agents: build: "${BUILD_OS}-${BUILD_ARCH}" artifact_paths: - "authelia-image-${BUILD_ARCH}.tar.zst" EOF if [[ "${BUILD_ARCH}" != "coverage" ]]; then cat << EOF - "authelia-${BUILD_OS}-${BUILD_ARCH}.tar.gz" - "authelia-${BUILD_OS}-${BUILD_ARCH}.tar.gz.sha256" depends_on: - "unit-test" EOF fi cat << EOF env: ARCH: "${BUILD_ARCH}" OS: "${BUILD_OS}" key: "build-docker-${BUILD_OS}-${BUILD_ARCH}" EOF if [[ "${BUILD_ARCH}" == "coverage" ]]; then cat << EOF if: build.branch !~ /^(v[0-9]+\.[0-9]+\.[0-9]+)$\$/ EOF else cat << EOF if: build.branch !~ /^(dependabot|renovate)\/.*/ 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