Skip to content

Try reworking dry-run #59

Try reworking dry-run

Try reworking dry-run #59

Workflow file for this run

name: Main - explore CI primitives
on:
push:
branches:
- main
env:
KOSLI_ORG: kosli
KOSLI_API_TOKEN: dummy3465324sgr65324wrets
KOSLI_FLOW: server
KOSLI_TRAIL: ${{ github.sha }}
KOSLI_CLI_VERSION: 2.10.18
KOSLI_DRY_RUN: ${{ vars.KOSLI_DRY_RUN }}
jobs:
setup:
runs-on: ubuntu-latest
outputs:
kosli_dry_run: ${{ steps.prepare.outputs.kosli_dry_run }}
steps:
- name: set-env-var in setup
id: prepare
run:
echo Hello
job-1:
runs-on: ubuntu-latest
needs: [ setup ]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Do wibble
id: wibble
run:
exit 0

Check failure on line 42 in .github/workflows/main.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/main.yml

Invalid workflow file

You have an error in your yaml syntax on line 42
- name: Setup Kosli cli
if: "${{ github.ref }}" == 'refs/heads/main' && (success() || failure())
uses: kosli-dev/setup-cli-action@v2
with:
version:
${{ env.KOSLI_CLI_VERSION }}
- name: When on master, attest result to Kosli
if: "${{ github.ref }}" == 'refs/heads/main' && (success() || failure())
run: |
echo "KOSLI_DRY_RUN=:${KOSLI_DRY_RUN}:"
KOSLI_COMPLIANT=$([ "${{ steps.wibble.outcome }}" == 'success' ] && echo true || echo false)
echo "KOSLI_COMPLIANT=:${KOSLI_COMPLIANT}:"
kosli attest generic --name=wibble
job-2:
runs-on: ubuntu-latest
needs: [ job-1 ]
if: ${{ success() || failure() }}
steps:
- name: step-1 from job-2
run: |
echo Hello from job-2, step-1
echo "TEST_UNIT_COVERAGE_IS_COMPLIANT=wibble" >> ${GITHUB_ENV}
- name: step-2 from job-2
run: |
echo Hello from job-2, step-2
echo "env-var=:${{ env.TEST_UNIT_COVERAGE_IS_COMPLIANT }}:"
# plain exit-42 on job-1,step-1 and success()||failure() on job-1,step-2 means
# job-1,step-2 runs? YES
# job-2 runs? NO
# plain exit-42 on job-1,step-1 and NO success()||failure() on job-1,step-2 means
# job-1,step-2 runs? NO
# job-2 runs? NO
# With this...
# - name: step-1 from job-1
# run: |
# echo Hello from job-1, step-1
# sdf
# echo Hello from job-1, step-1, after an error
# exit 42
# then
# the second echo is NOT run, and the exit code of the job is 127 (not 42)
# With this...
# job-2:
# runs-on: ubuntu-latest
# needs: [ job-1 ]
# if: ${{ success() || failure() }}
# then
# job1 failed, job2 waits for job1 to finish, and does then run.
# Putting continue-on-error: true
# at the step level, means that if the step fails
# the other steps still run, and the job succeeds
# Eg, there is no "Rerun failed jobs" option in the CI.
# Putting continue-on-error: true
# at the job-2 level, seems to have no effect.
# job1 fails, but job2 is not run (it is skipped)
# Putting continue-on-error: true
# at the job-1 level, means that job1 steps 2,3 are not run.
# and job-1 fails, and job-2 is run.
# env-var added to >> ${GITHUB_ENV}
# is available in the next step (in the same job)