Skip to content

CI / main · push · main #8

CI / main · push · main

CI / main · push · main #8

Workflow file for this run

# 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