Itself #924
This file contains 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
name: Itself | |
on: | |
push: | |
branches: [main] | |
paths: | |
- '.github/workflows/itself.yml' | |
- 'action.yml' | |
- 'dist/**' | |
pull_request: | |
paths: | |
- '.github/workflows/itself.yml' | |
- 'action.yml' | |
- 'dist/**' | |
schedule: | |
# Every 10:50 JST | |
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule | |
- cron: '50 1 * * *' | |
workflow_dispatch: | |
# Disable all permissions in workflow global as to setup clean room | |
# However PRs will have read permissions because this project is on a public repository | |
permissions: {} | |
# Do not enable `ACTIONS_STEP_DEBUG: true` for all steps, I also want to check actual logging | |
jobs: | |
default_logic: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
# Do NOT specify options except non omittable skip-list to make sure zero config may work | |
- uses: ./ | |
with: | |
skip-list: | | |
[ | |
{ | |
"workflowFile": "GH-820-graceperiod.yml" | |
} | |
] | |
validation_example_basic_errors_allow_failure: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
env: | |
ACTIONS_STEP_DEBUG: true | |
# Should allow failures in this job | |
continue-on-error: true | |
with: | |
retry-method: 'unknown_method' | |
min-interval-seconds: '-1' | |
attempt-limits: '0' | |
validation_example_combination_errors_allow_failure: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
env: | |
ACTIONS_STEP_DEBUG: true | |
# Should allow failures in this job | |
continue-on-error: true | |
with: | |
wait-list: | | |
[ | |
{ | |
"workflowFile": "lint.yml" | |
} | |
] | |
skip-list: | | |
[ | |
{ | |
"workflowFile": "release.yml" | |
} | |
] | |
exponential_backoff_allow_failure: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
env: | |
ACTIONS_STEP_DEBUG: true | |
# With the algorithm, this job takes long minutes to wait completed other jobs | |
# So set small limit to stop faster. | |
continue-on-error: true | |
with: | |
retry-method: 'exponential_backoff' | |
wait-seconds-before-first-polling: 2 | |
min-interval-seconds: 2 | |
attempt-limits: 2 | |
skip-same-workflow: 'true' | |
skip-list: | | |
[ | |
{ | |
"workflowFile": "GH-820-graceperiod.yml" | |
} | |
] | |
equal_intervals: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
env: | |
ACTIONS_STEP_DEBUG: true | |
with: | |
retry-method: 'equal_intervals' | |
min-interval-seconds: 10 | |
attempt-limits: 60 | |
skip-same-workflow: 'true' | |
skip-list: | | |
[ | |
{ | |
"workflowFile": "GH-820-graceperiod.yml" | |
} | |
] | |
wait-list: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
with: | |
retry-method: 'equal_intervals' | |
min-interval-seconds: 5 | |
attempt-limits: 30 | |
wait-list: | | |
[ | |
{ | |
"workflowFile": "lint.yml", | |
"optional": ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} | |
}, | |
{ | |
"workflowFile": "merge-bot-pr.yml", | |
"jobName": "dependabot", | |
"optional": true | |
}, | |
{ | |
"workflowFile": "THERE_ARE_NO_FILES_AS_THIS.yml", | |
"optional": true | |
} | |
] | |
skip-list: | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }} | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 | |
- uses: ./ | |
with: | |
retry-method: 'equal_intervals' | |
min-interval-seconds: 5 | |
attempt-limits: 30 | |
skip-same-workflow: 'false' # Intentionally set false to test skip list also can cover this use case | |
skip-list: | | |
[ | |
{ | |
"workflowFile": "itself.yml" | |
}, | |
{ | |
"workflowFile": "ci.yml" | |
}, | |
{ | |
"workflowFile": "ci-nix.yml" | |
}, | |
{ | |
"workflowFile": "merge-bot-pr.yml", | |
"jobName": "dependabot" | |
}, | |
{ | |
"workflowFile": "GH-820-graceperiod.yml" | |
} | |
] |