CI / main · push · main #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Generated by velnor-workflow. Regenerate; do not hand-edit. | |
| name: CI / Main | |
| run-name: CI / main · ${{ github.event_name }} · ${{ github.ref_name }} | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| runner: | |
| description: Execution backend | |
| required: false | |
| default: both | |
| type: choice | |
| options: | |
| - velnor | |
| - github | |
| - both | |
| scope: | |
| description: Verification scope | |
| required: true | |
| default: full | |
| type: choice | |
| options: | |
| - affected | |
| - full | |
| base_sha: | |
| description: Git ref or SHA used as the affected-selection base | |
| required: false | |
| default: refs/heads/main | |
| type: string | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.run_id }} | |
| cancel-in-progress: false | |
| permissions: | |
| actions: read | |
| contents: read | |
| jobs: | |
| plan: | |
| name: "Control / Planning" | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| scope: ${{ steps.plan.outputs.scope }} | |
| base_sha: ${{ steps.plan.outputs.base_sha }} | |
| head_sha: ${{ steps.plan.outputs.head_sha }} | |
| units: ${{ steps.plan.outputs.units }} | |
| full_units: ${{ steps.plan.outputs.full_units }} | |
| gradle_matrix: ${{ steps.plan.outputs.gradle_matrix }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Set up Velnor workflow runtime | |
| if: ${{ runner.environment == 'github-hosted' }} | |
| uses: tailrocks/velnor/.github/actions/setup-velnor-workflow@5623be5539f2a378430fdcc7d4ba5cb13b5f1222 | |
| with: | |
| rev: 5623be5539f2a378430fdcc7d4ba5cb13b5f1222 | |
| - name: Set trusted workflow policy revision | |
| run: echo "VELNOR_WORKFLOW_POLICY_REVISION=5623be5539f2a378430fdcc7d4ba5cb13b5f1222" >> "$GITHUB_ENV" | |
| - name: Select affected units | |
| id: plan | |
| env: | |
| EVENT_NAME: ${{ github.event_name }} | |
| CI_SCOPE_OVERRIDE: ${{ github.event.inputs.scope || '' }} | |
| BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.inputs.base_sha || github.event.before || 'refs/heads/main' }} | |
| HEAD_SHA: ${{ github.sha }} | |
| VELNOR_LANES: ${{ github.event.inputs.runner || 'both' }} | |
| run: | | |
| set -euo pipefail | |
| if [[ -z "${CI_SCOPE_OVERRIDE:-}" ]]; then unset CI_SCOPE_OVERRIDE; fi | |
| velnor-workflow plan --config .github/ci/project.toml | |
| - name: Prepare Velnor workflow runtime | |
| shell: bash | |
| env: | |
| EXPECTED_REVISION: 5623be5539f2a378430fdcc7d4ba5cb13b5f1222 | |
| run: | | |
| set -euo pipefail | |
| stage="$RUNNER_TEMP/velnor-workflow-runtime" | |
| rm -rf "$stage" | |
| mkdir -p "$stage" | |
| src="$(command -v velnor-workflow)" | |
| install -m 0755 "$src" "$stage/velnor-workflow" | |
| digest="$(sha256sum "$stage/velnor-workflow" | awk '{print $1}')" | |
| policy_src="${VELNOR_WORKFLOW_PINNED_BINARY:-$src}" | |
| install -m 0755 "$policy_src" "$stage/velnor-workflow-policy" | |
| policy_revision="$("$stage/velnor-workflow-policy" --revision)" | |
| [[ "$policy_revision" == "$EXPECTED_REVISION" ]] || { echo "::error::policy runtime reports revision $policy_revision, expected $EXPECTED_REVISION" >&2; exit 1; } | |
| policy_digest="$(sha256sum "$stage/velnor-workflow-policy" | awk '{print $1}')" | |
| jq -n --arg repository "$GITHUB_REPOSITORY" --arg revision "$EXPECTED_REVISION" --arg head_branch "${{ github.ref_name }}" --arg platform "${{ runner.os }}-${{ runner.arch }}" --arg run_id "$GITHUB_RUN_ID" --arg job_id "${{ github.job }}" --arg binary_sha256 "$digest" --arg policy_revision "$policy_revision" --arg policy_binary_sha256 "$policy_digest" '{repository: $repository, revision: $revision, head_branch: $head_branch, platform: $platform, run_id: $run_id, job_id: $job_id, binary_sha256: $binary_sha256, policy_revision: $policy_revision, policy_binary_sha256: $policy_binary_sha256}' > "$stage/manifest.json" | |
| - name: Publish Velnor workflow runtime | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: velnor-workflow-runtime-5623be5539f2a378430fdcc7d4ba5cb13b5f1222-${{ runner.os }}-${{ runner.arch }} | |
| path: ${{ runner.temp }}/velnor-workflow-runtime | |
| if-no-files-found: error | |
| retention-days: 7 | |
| velnor-lane-admission: | |
| name: "Control / Velnor admission" | |
| if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }} | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Velnor lane omitted for fork | |
| run: | | |
| echo '::notice::Velnor lane omitted for fork pull request; validating GitHub lane only.' | |
| policy: | |
| name: Policy | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 20 | |
| # Trust invariant: this job runs the base branch's validator against the | |
| # audited tree under pull_request_target. It holds `contents: read` only, | |
| # references no secrets, and its checkout persists no credentials, so | |
| # building and running the tree's declared generator here is no more | |
| # privileged than the pull_request lanes that already build the tree. | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository history | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| path: policy-checkout | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Check out audited head | |
| working-directory: policy-checkout | |
| env: | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
| HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name || github.repository }} | |
| run: | | |
| set -euo pipefail | |
| if ! git cat-file -e "$HEAD_SHA^{commit}" 2>/dev/null; then | |
| git fetch --no-tags "$GITHUB_SERVER_URL/$HEAD_REPOSITORY" "$HEAD_SHA" | |
| fi | |
| git checkout --quiet --detach "$HEAD_SHA" | |
| - name: Bound the Mr. Boxington store | |
| shell: bash | |
| run: echo "MBX_GC_MAX_SIZE=12GiB" >> "$GITHUB_ENV" | |
| - name: Set up Mr. Boxington | |
| uses: jdx/mr-boxington-action@7234d3dd1a6ca8f6c381eea8e4dfb03f18fcf777 # v1.3.0 | |
| with: | |
| backend: github | |
| version: 1.11.1 | |
| cache-key: velnor-policy-mbx-1.11.1-${{ runner.os }}-${{ runner.arch }}-5623be5539f2a378430fdcc7d4ba5cb13b5f1222 | |
| restore-keys: | | |
| velnor-policy-mbx-1.11.1-${{ runner.os }}-${{ runner.arch }}- | |
| - name: Install pinned Velnor workflow runtime | |
| env: | |
| CARGO_HOME: ${{ runner.temp }}/velnor-workflow-cargo-home | |
| CARGO_TARGET_DIR: ${{ runner.temp }}/velnor-workflow-cargo-target | |
| VELNOR_WORKFLOW_INSTALL_DIR: ${{ runner.temp }}/velnor-workflow-install | |
| VELNOR_WORKFLOW_ROOT: ${{ runner.temp }}/velnor-workflow | |
| run: | | |
| set -euo pipefail | |
| install -d -m 700 \ | |
| "$CARGO_HOME" \ | |
| "$CARGO_TARGET_DIR" \ | |
| "$VELNOR_WORKFLOW_INSTALL_DIR" | |
| cd "$VELNOR_WORKFLOW_INSTALL_DIR" | |
| env -u RUSTC_WRAPPER -u SCCACHE_GHA_ENABLED -u CARGO_INCREMENTAL -u RUSTFLAGS -u CARGO_ENCODED_RUSTFLAGS \ | |
| cargo install \ | |
| --locked \ | |
| --git https://github.com/tailrocks/velnor \ | |
| --rev 5623be5539f2a378430fdcc7d4ba5cb13b5f1222 \ | |
| --root "$VELNOR_WORKFLOW_ROOT" \ | |
| velnor-workflow \ | |
| --bin velnor-workflow | |
| echo "$VELNOR_WORKFLOW_ROOT/bin" >> "$GITHUB_PATH" | |
| - name: Resolve required status checks | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| DEFAULT_BRANCH: main | |
| run: | | |
| set -euo pipefail | |
| contexts="$(gh api "repos/$GITHUB_REPOSITORY/rulesets?includes_parents=true" \ | |
| | jq -r '.[] | select(.target == "branch" and .enforcement == "active") | .id' \ | |
| | while read -r id; do gh api "repos/$GITHUB_REPOSITORY/rulesets/$id"; done \ | |
| | jq -r --arg branch "refs/heads/$DEFAULT_BRANCH" 'select(.conditions.ref_name.include | any(. == "~DEFAULT_BRANCH" or . == "~ALL" or . == $branch)) | .rules[] | select(.type == "required_status_checks") | .parameters.required_status_checks[].context' \ | |
| | sort -u | paste -sd, -)" | |
| echo "RULESET_CONTEXTS=$contexts" >> "$GITHUB_ENV" | |
| - name: Enforce workflow policy | |
| env: | |
| WORKFLOW_ROOT: ${{ github.workspace }}/policy-checkout | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
| BASE_SHA: ${{ github.event.pull_request.base.sha || github.sha }} | |
| VELNOR_WORKFLOW_POLICY_REVISION: 5623be5539f2a378430fdcc7d4ba5cb13b5f1222 | |
| run: | | |
| set -euo pipefail | |
| velnor-workflow policy \ | |
| --workflow-root "$WORKFLOW_ROOT" \ | |
| --head-sha "$HEAD_SHA" \ | |
| --base-sha "$BASE_SHA" \ | |
| --ruleset-contexts "$RULESET_CONTEXTS" | |
| - name: Set up actionlint | |
| uses: jdx/mise-action@c2a87611a18de5b3828c5652fe268e992400cb5c # v4.3.0 | |
| with: | |
| install_args: actionlint@1.7.12 | |
| cache: false | |
| - name: Lint caller workflows | |
| working-directory: policy-checkout | |
| run: mise exec actionlint@1.7.12 -- actionlint | |
| github-gradle: | |
| name: "Gradle · Gradle" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle: | |
| name: "Gradle · Gradle" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-buildsrc: | |
| name: "Gradle · Gradle (buildSrc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-buildsrc,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-buildsrc | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| buildSrc/gradle/wrapper/gradle-wrapper.properties | |
| buildSrc/gradle/libs.versions.toml | |
| velnor-gradle-buildsrc: | |
| name: "Gradle · Gradle (buildSrc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-buildsrc,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-buildsrc | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| buildSrc/gradle/wrapper/gradle-wrapper.properties | |
| buildSrc/gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-dgs-autoconfigure: | |
| name: "Gradle · Gradle (graphql-datetime-dgs-autoconfigure)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-dgs-autoconfigure,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-dgs-autoconfigure | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-dgs-autoconfigure: | |
| name: "Gradle · Gradle (graphql-datetime-dgs-autoconfigure)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-dgs-autoconfigure,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-dgs-autoconfigure | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-dgs-starter: | |
| name: "Gradle · Gradle (graphql-datetime-dgs-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-dgs-starter,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-dgs-starter | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-dgs-starter: | |
| name: "Gradle · Gradle (graphql-datetime-dgs-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-dgs-starter,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-dgs-starter | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-kickstart-spring-boot-starter: | |
| name: "Gradle · Gradle (graphql-datetime-kickstart-spring-boot-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-kickstart-spring-boot-starter,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-kickstart-spring-boot-starter | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-kickstart-spring-boot-starter: | |
| name: "Gradle · Gradle (graphql-datetime-kickstart-spring-boot-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-kickstart-spring-boot-starter,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-kickstart-spring-boot-starter | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-spring-boot-autoconfigure: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-autoconfigure)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-autoconfigure,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-autoconfigure | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-spring-boot-autoconfigure: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-autoconfigure)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-autoconfigure,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-autoconfigure | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-spring-boot-common: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-common)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-common,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-common | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-spring-boot-common: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-common)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-common,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-common | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-datetime-spring-boot-starter: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-starter,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-starter | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-datetime-spring-boot-starter: | |
| name: "Gradle · Gradle (graphql-datetime-spring-boot-starter)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-datetime-spring-boot-starter,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-datetime-spring-boot-starter | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-graphql-java-datetime: | |
| name: "Gradle · Gradle (graphql-java-datetime)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-java-datetime,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-java-datetime | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-graphql-java-datetime: | |
| name: "Gradle · Gradle (graphql-java-datetime)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-graphql-java-datetime,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-graphql-java-datetime | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-samples-dgs-webmvc: | |
| name: "Gradle · Gradle (samples/dgs-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-dgs-webmvc,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-dgs-webmvc | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-samples-dgs-webmvc: | |
| name: "Gradle · Gradle (samples/dgs-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-dgs-webmvc,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-dgs-webmvc | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-samples-kickstart-webflux: | |
| name: "Gradle · Gradle (samples/kickstart-webflux)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-kickstart-webflux,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-kickstart-webflux | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-samples-kickstart-webflux: | |
| name: "Gradle · Gradle (samples/kickstart-webflux)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-kickstart-webflux,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-kickstart-webflux | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-samples-kickstart-webmvc: | |
| name: "Gradle · Gradle (samples/kickstart-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-kickstart-webmvc,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-kickstart-webmvc | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-samples-kickstart-webmvc: | |
| name: "Gradle · Gradle (samples/kickstart-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-kickstart-webmvc,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-kickstart-webmvc | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| github-gradle-samples-spring-boot-webmvc: | |
| name: "Gradle · Gradle (samples/spring-boot-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-spring-boot-webmvc,') }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-spring-boot-webmvc | |
| lane: github | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| velnor-gradle-samples-spring-boot-webmvc: | |
| name: "Gradle · Gradle (samples/spring-boot-webmvc)" | |
| if: ${{ always() && needs.plan.result == 'success' && needs.policy.result == 'success' && contains(format(',{0},', needs.plan.outputs.units), ',gradle-samples-spring-boot-webmvc,') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} | |
| needs: [plan, policy] | |
| uses: ./.github/workflows/ci-unit-gradle.yml | |
| with: | |
| unit: gradle-samples-spring-boot-webmvc | |
| lane: velnor | |
| selected_units: ${{ needs.plan.outputs.units }} | |
| scope: ${{ needs.plan.outputs.scope }} | |
| full_units: ${{ needs.plan.outputs.full_units }} | |
| base_sha: ${{ needs.plan.outputs.base_sha }} | |
| head_sha: ${{ needs.plan.outputs.head_sha }} | |
| cache_paths: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| cache_key_files: | | |
| gradle/wrapper/gradle-wrapper.properties | |
| gradle/libs.versions.toml | |
| ci-required: | |
| name: ci-required | |
| if: ${{ always() }} | |
| needs: [plan, velnor-lane-admission, policy, github-gradle, velnor-gradle, github-gradle-buildsrc, velnor-gradle-buildsrc, github-gradle-graphql-datetime-dgs-autoconfigure, velnor-gradle-graphql-datetime-dgs-autoconfigure, github-gradle-graphql-datetime-dgs-starter, velnor-gradle-graphql-datetime-dgs-starter, github-gradle-graphql-datetime-kickstart-spring-boot-starter, velnor-gradle-graphql-datetime-kickstart-spring-boot-starter, github-gradle-graphql-datetime-spring-boot-autoconfigure, velnor-gradle-graphql-datetime-spring-boot-autoconfigure, github-gradle-graphql-datetime-spring-boot-common, velnor-gradle-graphql-datetime-spring-boot-common, github-gradle-graphql-datetime-spring-boot-starter, velnor-gradle-graphql-datetime-spring-boot-starter, github-gradle-graphql-java-datetime, velnor-gradle-graphql-java-datetime, github-gradle-samples-dgs-webmvc, velnor-gradle-samples-dgs-webmvc, github-gradle-samples-kickstart-webflux, velnor-gradle-samples-kickstart-webflux, github-gradle-samples-kickstart-webmvc, velnor-gradle-samples-kickstart-webmvc, github-gradle-samples-spring-boot-webmvc, velnor-gradle-samples-spring-boot-webmvc] | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Validate generated stack results | |
| env: | |
| NEEDS_JSON: ${{ toJSON(needs) }} | |
| SELECTED_UNITS: ${{ needs.plan.outputs.units }} | |
| FORK_PR: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }} | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| result_for_job() { | |
| jq -r --arg job "$1" '.[$job].result // empty' <<<"$NEEDS_JSON" | |
| } | |
| result="$(result_for_job plan)" | |
| if [[ "$result" != success ]]; then | |
| echo "required CI prerequisite plan did not pass: $result" >&2 | |
| exit 1 | |
| fi | |
| result="$(result_for_job policy)" | |
| if [[ "$result" != success ]]; then | |
| echo "required CI prerequisite policy did not pass: $result" >&2 | |
| exit 1 | |
| fi | |
| result="$(result_for_job velnor-lane-admission)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "required CI prerequisite velnor-lane-admission did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| selected=",$SELECTED_UNITS," | |
| if [[ "$selected" == *",gradle,"* ]]; then | |
| result="$(result_for_job github-gradle)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle,"* ]]; then | |
| result="$(result_for_job velnor-gradle)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-buildsrc,"* ]]; then | |
| result="$(result_for_job github-gradle-buildsrc)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-buildsrc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-buildsrc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-buildsrc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-buildsrc,"* ]]; then | |
| result="$(result_for_job velnor-gradle-buildsrc)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-buildsrc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-buildsrc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-buildsrc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-buildsrc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-dgs-autoconfigure,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-dgs-autoconfigure)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-dgs-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-dgs-autoconfigure)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-dgs-autoconfigure failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-dgs-autoconfigure,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-dgs-autoconfigure)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-dgs-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-dgs-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-dgs-autoconfigure)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-dgs-autoconfigure failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-dgs-starter,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-dgs-starter)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-dgs-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-dgs-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-dgs-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-dgs-starter,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-dgs-starter)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-dgs-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-dgs-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-dgs-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-dgs-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-kickstart-spring-boot-starter,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-kickstart-spring-boot-starter)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-kickstart-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-kickstart-spring-boot-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-kickstart-spring-boot-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-kickstart-spring-boot-starter,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-kickstart-spring-boot-starter)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-kickstart-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-kickstart-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-kickstart-spring-boot-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-kickstart-spring-boot-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-autoconfigure,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-autoconfigure)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-spring-boot-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-autoconfigure)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-spring-boot-autoconfigure failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-autoconfigure,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-autoconfigure)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-autoconfigure did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-autoconfigure)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-spring-boot-autoconfigure failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-common,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-common)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-spring-boot-common did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-common)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-spring-boot-common failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-common,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-common)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-common did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-common did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-common)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-spring-boot-common failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-starter,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-starter)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-datetime-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-datetime-spring-boot-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-datetime-spring-boot-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-datetime-spring-boot-starter,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-starter)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-datetime-spring-boot-starter did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-datetime-spring-boot-starter)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-datetime-spring-boot-starter failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-java-datetime,"* ]]; then | |
| result="$(result_for_job github-gradle-graphql-java-datetime)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-graphql-java-datetime did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-graphql-java-datetime)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-graphql-java-datetime failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-graphql-java-datetime,"* ]]; then | |
| result="$(result_for_job velnor-gradle-graphql-java-datetime)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-java-datetime did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-graphql-java-datetime did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-graphql-java-datetime)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-graphql-java-datetime failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-dgs-webmvc,"* ]]; then | |
| result="$(result_for_job github-gradle-samples-dgs-webmvc)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-samples-dgs-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-samples-dgs-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-samples-dgs-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-dgs-webmvc,"* ]]; then | |
| result="$(result_for_job velnor-gradle-samples-dgs-webmvc)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-samples-dgs-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-samples-dgs-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-samples-dgs-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-samples-dgs-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-kickstart-webflux,"* ]]; then | |
| result="$(result_for_job github-gradle-samples-kickstart-webflux)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-samples-kickstart-webflux did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-samples-kickstart-webflux)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-samples-kickstart-webflux failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-kickstart-webflux,"* ]]; then | |
| result="$(result_for_job velnor-gradle-samples-kickstart-webflux)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-samples-kickstart-webflux did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-samples-kickstart-webflux did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-samples-kickstart-webflux)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-samples-kickstart-webflux failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-kickstart-webmvc,"* ]]; then | |
| result="$(result_for_job github-gradle-samples-kickstart-webmvc)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-samples-kickstart-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-samples-kickstart-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-samples-kickstart-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-kickstart-webmvc,"* ]]; then | |
| result="$(result_for_job velnor-gradle-samples-kickstart-webmvc)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-samples-kickstart-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-samples-kickstart-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-samples-kickstart-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-samples-kickstart-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-spring-boot-webmvc,"* ]]; then | |
| result="$(result_for_job github-gradle-samples-spring-boot-webmvc)" | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job github-gradle-samples-spring-boot-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| result="$(result_for_job github-gradle-samples-spring-boot-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job github-gradle-samples-spring-boot-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| if [[ "$selected" == *",gradle-samples-spring-boot-webmvc,"* ]]; then | |
| result="$(result_for_job velnor-gradle-samples-spring-boot-webmvc)" | |
| if [[ "$FORK_PR" == true ]]; then | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "selected CI job velnor-gradle-samples-spring-boot-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| else | |
| case "$result" in | |
| success) ;; | |
| *) echo "selected CI job velnor-gradle-samples-spring-boot-webmvc did not pass: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| else | |
| result="$(result_for_job velnor-gradle-samples-spring-boot-webmvc)" | |
| case "$result" in | |
| success|skipped) ;; | |
| *) echo "unselected CI job velnor-gradle-samples-spring-boot-webmvc failed unexpectedly: $result" >&2; exit 1 ;; | |
| esac | |
| fi | |
| required: | |
| name: "Control / Required" | |
| if: ${{ always() }} | |
| needs: [ci-required] | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Mirror CI / Required | |
| if: ${{ needs.ci-required.result != 'success' }} | |
| run: exit 1 |