Skip to content

Commit

Permalink
pathogen-repo-ci: Use status functions in conditionals instead of con…
Browse files Browse the repository at this point in the history
…tinue-on-error: true

While "continue-on-error: true" resulted in the behaviour we wanted, it
also meant the job step status indicators were misleading: even when an
ingest/phylogenetic/nextclade step failed, the UI showed a check mark
for them in the logs.  Instead of masking failures to keep going in the
face of errors, override the default success() conditional by specifying
our own conditions on a status expression.

Related-to: <#98 (comment)>
  • Loading branch information
tsibley committed Jun 14, 2024
1 parent f2486c9 commit 00085b8
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
17 changes: 9 additions & 8 deletions .github/workflows/pathogen-repo-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -286,18 +286,16 @@ jobs:
if: hashFiles('ingest/Snakefile') && hashFiles('ingest/build-configs/ci/config.yaml')
id: ingest
run: nextstrain build ingest --configfile build-configs/ci/config.yaml
continue-on-error: true
- name: Run phylogenetic
if: hashFiles('phylogenetic/Snakefile') && hashFiles('phylogenetic/build-configs/ci/config.yaml')
if: hashFiles('phylogenetic/Snakefile') && hashFiles('phylogenetic/build-configs/ci/config.yaml') && !cancelled()
id: phylogenetic
run: nextstrain build phylogenetic --configfile build-configs/ci/config.yaml
continue-on-error: true
- name: Run nextclade
if: hashFiles('nextclade/Snakefile') && hashFiles('nextclade/build-configs/ci/config.yaml')
if: hashFiles('nextclade/Snakefile') && hashFiles('nextclade/build-configs/ci/config.yaml') && !cancelled()
id: nextclade
run: nextstrain build nextclade --configfile build-configs/ci/config.yaml
continue-on-error: true
- uses: actions/upload-artifact@v4
- if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-name }}-${{ matrix.runtime }}
if-no-files-found: ignore
Expand All @@ -320,10 +318,13 @@ jobs:
nextclade/benchmarks/
nextclade/logs/
nextclade/results/
- name: Verify a workflow ran
- if: always()
name: Verify a workflow ran
env:
# "outcome" is success/failure/cancelled/skipped _before_
# "continue-on-error" is applied to calculate "conclusion"
# "continue-on-error" is applied to calculate "conclusion"; we no
# longer use continue-on-error for these steps, but even so,
# conceptually here what we want is outcome not conclusion.
ingest: ${{ steps.ingest.outcome }}
phylogenetic: ${{ steps.phylogenetic.outcome }}
nextclade: ${{ steps.nextclade.outcome }}
Expand Down
17 changes: 9 additions & 8 deletions .github/workflows/pathogen-repo-ci.yaml.in
Original file line number Diff line number Diff line change
Expand Up @@ -263,21 +263,19 @@ jobs:
if: hashFiles('ingest/Snakefile') && hashFiles('ingest/build-configs/ci/config.yaml')
id: ingest
run: nextstrain build ingest --configfile build-configs/ci/config.yaml
continue-on-error: true

- name: Run phylogenetic
if: hashFiles('phylogenetic/Snakefile') && hashFiles('phylogenetic/build-configs/ci/config.yaml')
if: hashFiles('phylogenetic/Snakefile') && hashFiles('phylogenetic/build-configs/ci/config.yaml') && !cancelled()
id: phylogenetic
run: nextstrain build phylogenetic --configfile build-configs/ci/config.yaml
continue-on-error: true

- name: Run nextclade
if: hashFiles('nextclade/Snakefile') && hashFiles('nextclade/build-configs/ci/config.yaml')
if: hashFiles('nextclade/Snakefile') && hashFiles('nextclade/build-configs/ci/config.yaml') && !cancelled()
id: nextclade
run: nextstrain build nextclade --configfile build-configs/ci/config.yaml
continue-on-error: true

- uses: actions/upload-artifact@v4
- if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-name }}-${{ matrix.runtime }}
if-no-files-found: ignore
Expand All @@ -301,10 +299,13 @@ jobs:
nextclade/logs/
nextclade/results/

- name: Verify a workflow ran
- if: always()
name: Verify a workflow ran
env:
# "outcome" is success/failure/cancelled/skipped _before_
# "continue-on-error" is applied to calculate "conclusion"
# "continue-on-error" is applied to calculate "conclusion"; we no
# longer use continue-on-error for these steps, but even so,
# conceptually here what we want is outcome not conclusion.
ingest: ${{ steps.ingest.outcome }}
phylogenetic: ${{ steps.phylogenetic.outcome }}
nextclade: ${{ steps.nextclade.outcome }}
Expand Down

0 comments on commit 00085b8

Please sign in to comment.