Skip to content

Itself

Itself #829

Workflow file for this run

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"
}
]