Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keep workflows enabled #118

Merged
merged 4 commits into from
Nov 26, 2024
Merged

Keep workflows enabled #118

merged 4 commits into from
Nov 26, 2024

Conversation

joverlee521
Copy link
Contributor

@joverlee521 joverlee521 commented Nov 25, 2024

Description of proposed changes

Uses the GH API to "enable" scheduled workflows on the first of
every month as a work-around for scheduled workflows being automatically
disabled when no repository activity has occurred in 60 days.

Included all active Nextstrain org GH Action workflows that have the
schedule trigger plus this new workflow so it keeps itself enabled.

https://github.com/search?q=org%3Anextstrain+path%3A.github%2Fworkflows%2F**+schedule&type=code

Related issue(s)

Resolves #112

Checklist

Uses the GH API to "enable" scheduled workflows on the first of
every month as a work-around for scheduled workflows being automatically
disabled when no repository activity has occurred in 60 days.

Included all active Nextstrain org GH Action workflows that have the
`schedule` trigger plus this new workflow so it keeps itself enabled.

<https://github.com/search?q=org%3Anextstrain+path%3A.github%2Fworkflows%2F**+schedule&type=code>
Used for `repo` scope token to work across different repositories.
Outside of this commit, I had to allow the `.github` repository to use
the organization secret.
- { repo: rsv, workflow: rebuild.yaml }
- { repo: seasonal-cov, workflow: ingest-to-phylogenetic.yaml }
- { repo: status, workflow: ci.yaml }
- { repo: WNV, workflow: ingest-to-phylogenetic.yaml }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not entirely clear to me why this failed for WNV:

gh: Must have admin rights to Repository. (HTTP 403)
{"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/actions/workflows#enable-a-workflow","status":"403"}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OH, nextstrain/core (which includes nextstrain-bot user) only has read access for the WNV repo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated nextstrain/core to admin access for WNV repo (after confirmation on Slack) and the job succeeded.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the error message is misleading and admin is not strictly necessary (and should be avoided if possible). The API call for augur's ci.yaml was successful with write on that repo. Can we check if this works with write on WNV?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah you're right! I set nextstrain/core to write access for WNV repo and the job succeeded

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The access requirements are defined here, but it's not super clear.

permissions:
actions: write
env:
GH_TOKEN: ${{ secrets.GH_TOKEN_NEXTSTRAIN_BOT_WORKFLOW_DISPATCH }}

Suggestion: summarize with a comment along the lines of "ensure nextstrain-bot has write access to all repos included in the matrix" so in the future we're less likely to see the misleading error message.

Copy link
Member

@tsibley tsibley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥳

Comment on lines +24 to +49
- { repo: .github, workflow: keep-workflows-enabled.yaml }
- { repo: augur, workflow: ci.yaml }
- { repo: avian-flu, workflow: ingest-to-phylogenetic-ncbi.yaml }
- { repo: cli, workflow: ci.yaml }
- { repo: cli, workflow: standalone-installers.yaml }
- { repo: conda-base, workflow: installation.yaml }
- { repo: dengue, workflow: ingest-to-phylogenetic.yaml }
- { repo: forecasts-ncov, workflow: update-ncov-case-counts.yaml }
- { repo: lassa, workflow: ci.yaml }
- { repo: lassa, workflow: ingest-to-phylogenetic.yaml }
- { repo: measles, workflow: ingest-to-phylogenetic.yaml }
- { repo: mpox, workflow: fetch-and-ingest.yaml }
- { repo: ncov, workflow: rebuild-100k.yml }
- { repo: ncov-ingest, workflow: fetch-and-ingest-genbank-master.yml }
- { repo: ncov-ingest, workflow: fetch-and-ingest-gisaid-master.yml }
- { repo: nextstrain.org, workflow: index-resources.yml }
- { repo: nextstrain.org, workflow: remind-to-promote.yml }
- { repo: nipah, workflow: ingest-to-phylogenetic.yaml }
- { repo: oropouche, workflow: ingest-to-phylogenetic.yaml }
- { repo: rabies, workflow: ingest-to-phylogenetic.yaml }
- { repo: rsv, workflow: fetch-and-ingest.yaml }
- { repo: rsv, workflow: rebuild.yaml }
- { repo: seasonal-cov, workflow: ingest-to-phylogenetic.yaml }
- { repo: status, workflow: ci.yaml }
- { repo: WNV, workflow: ingest-to-phylogenetic.yaml }
- { repo: zika, workflow: ingest-to-phylogenetic.yaml }
Copy link
Member

@tsibley tsibley Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd much prefer to query these (e.g. from GitHub's API) rather than hardcode them all here... (but we don't need to do that now if you aren't so inclined)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heh, it's a "feature" to allow explicit opt-in of workflows 😉

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will revisit when I have the appetite: #119

fail-fast: false
matrix:
include:
- { repo: .github, workflow: keep-workflows-enabled.yaml }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

box

.github/workflows/keep-workflows-enabled.yaml Outdated Show resolved Hide resolved
Shorter job name is more useful on the workflow summary page.

Co-authored-by: Thomas Sibley <[email protected]>
@joverlee521 joverlee521 merged commit 25cc821 into master Nov 26, 2024
68 checks passed
@joverlee521 joverlee521 deleted the keep-workflows-enabled branch November 26, 2024 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Prevent scheduled workflow from being automatically disabled
3 participants