diff --git a/.github/workflows/automatic-approval.yml b/.github/workflows/automatic-approval.yml index 7f212e23b..a8a7b6feb 100644 --- a/.github/workflows/automatic-approval.yml +++ b/.github/workflows/automatic-approval.yml @@ -8,6 +8,7 @@ permissions: {} jobs: approve-automatic-prs: runs-on: ubuntu-latest + timeout-minutes: 2 if: github.actor_id == 158783068 || github.actor_id == 190541745 || github.actor_id == 210161987 # Id of renovate bot and crowdin bot see https://api.github.com/users/homarr-renovate%5Bbot%5D and https://api.github.com/users/homarr-crowdin%5Bbot%5D and https://api.github.com/users/homarr-update-contributors%5Bbot%5D steps: - name: Checkout code diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 2b5e8a3d7..eeaec94f2 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -23,6 +23,7 @@ env: jobs: lint: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 @@ -38,6 +39,7 @@ jobs: format: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 @@ -49,6 +51,7 @@ jobs: typecheck: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 @@ -60,6 +63,7 @@ jobs: test: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 @@ -77,6 +81,7 @@ jobs: e2e: runs-on: ubuntu-latest + timeout-minutes: 15 steps: - uses: actions/checkout@v6 @@ -101,6 +106,7 @@ jobs: build: runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@v6 - name: Setup diff --git a/.github/workflows/conventions-semantic-pull-requests.yml b/.github/workflows/conventions-semantic-pull-requests.yml index 01eed5320..89aa7d9b2 100644 --- a/.github/workflows/conventions-semantic-pull-requests.yml +++ b/.github/workflows/conventions-semantic-pull-requests.yml @@ -13,7 +13,8 @@ permissions: jobs: validate-pull-request-title: runs-on: ubuntu-latest + timeout-minutes: 1 steps: - uses: amannn/action-semantic-pull-request@v6 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/crowdin-schedule-download.yml b/.github/workflows/crowdin-schedule-download.yml index a62f9e31d..fb0e1d7ba 100644 --- a/.github/workflows/crowdin-schedule-download.yml +++ b/.github/workflows/crowdin-schedule-download.yml @@ -10,6 +10,7 @@ permissions: jobs: download-crowdin-translations: + timeout-minutes: 5 runs-on: ubuntu-latest steps: diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index 4cdf60b66..4f8d48de6 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -14,6 +14,7 @@ jobs: # Don't run this action if the downloaded translations are being pushed if: "!contains(github.event.head_commit.message, 'chore(lang)')" runs-on: ubuntu-latest + timeout-minutes: 5 steps: - name: Checkout diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml index a1b1beb82..8335bb46c 100644 --- a/.github/workflows/deployment-docker-image.yml +++ b/.github/workflows/deployment-docker-image.yml @@ -32,6 +32,7 @@ jobs: release: name: Create tag and release runs-on: ubuntu-latest + timeout-minutes: 5 env: SKIP_RELEASE: ${{ github.event_name == 'workflow_dispatch' || github.ref_name == 'dev' }} outputs: @@ -112,6 +113,7 @@ jobs: name: Build docker image for amd64 needs: release runs-on: ubuntu-latest + timeout-minutes: 15 outputs: digest: ${{ steps.build.outputs.digest }} steps: @@ -150,6 +152,7 @@ jobs: name: Build docker image for arm64 needs: release runs-on: ubuntu-24.04-arm + timeout-minutes: 20 outputs: digest: ${{ steps.build.outputs.digest }} steps: @@ -188,6 +191,7 @@ jobs: name: Extract amd64 asset from docker image needs: [release, build-amd64] runs-on: ubuntu-latest + timeout-minutes: 2 steps: - name: Extract amd64 if: needs.release.outputs.skipped == 'false' @@ -203,6 +207,7 @@ jobs: name: Extract arm64 asset from docker image needs: [release, build-arm64] runs-on: ubuntu-24.04-arm + timeout-minutes: 2 steps: - name: Extract arm64 if: needs.release.outputs.skipped == 'false' @@ -217,6 +222,7 @@ jobs: name: Complete deployment and notify needs: [release, build-amd64, build-arm64, extract-asset-amd64, extract-asset-arm64] runs-on: ubuntu-latest + timeout-minutes: 5 env: NEXT_VERSION: ${{ needs.release.outputs.version }} DEPLOY_LATEST: ${{ github.ref_name == 'main' }} diff --git a/.github/workflows/deployment-weekly-release.yml b/.github/workflows/deployment-weekly-release.yml index 8eae236c4..869894a15 100644 --- a/.github/workflows/deployment-weekly-release.yml +++ b/.github/workflows/deployment-weekly-release.yml @@ -18,6 +18,7 @@ permissions: jobs: create-and-merge-pr: runs-on: ubuntu-latest + timeout-minutes: 2 steps: - name: Discord notification if: ${{ github.events.inputs.send-notifications }} diff --git a/.github/workflows/on-pr-renovate-validate.yml b/.github/workflows/on-pr-renovate-validate.yml index ebfb57ed2..cd5b27c49 100644 --- a/.github/workflows/on-pr-renovate-validate.yml +++ b/.github/workflows/on-pr-renovate-validate.yml @@ -11,6 +11,7 @@ on: jobs: renovate-validate: runs-on: ubuntu-latest + timeout-minutes: 2 steps: - uses: actions/checkout@v6 - run: | diff --git a/.github/workflows/on-release.yml b/.github/workflows/on-release.yml index 884e7c162..c1f3739ef 100644 --- a/.github/workflows/on-release.yml +++ b/.github/workflows/on-release.yml @@ -8,6 +8,7 @@ jobs: trigger-docs-release: name: Trigger Documentation Release runs-on: ubuntu-latest + timeout-minutes: 2 steps: - name: Obtain token id: obtainToken @@ -39,6 +40,7 @@ jobs: update-bug-report-template: name: Update Bug Report Template runs-on: ubuntu-latest + timeout-minutes: 5 steps: - name: Obtain token id: obtainToken diff --git a/.github/workflows/skip-renovate-stability-days.yml b/.github/workflows/skip-renovate-stability-days.yml index 5492103b7..5e4be4054 100644 --- a/.github/workflows/skip-renovate-stability-days.yml +++ b/.github/workflows/skip-renovate-stability-days.yml @@ -10,6 +10,7 @@ jobs: if: ${{ !startsWith(github.head_ref, 'renovate/') }} name: Skip Stability Days runs-on: ubuntu-latest + timeout-minutes: 1 steps: - name: Add status check env: diff --git a/.github/workflows/update-contributors.yml b/.github/workflows/update-contributors.yml index e6ef7f6ae..c3b7e53f0 100644 --- a/.github/workflows/update-contributors.yml +++ b/.github/workflows/update-contributors.yml @@ -14,6 +14,7 @@ permissions: jobs: update-contributors: runs-on: ubuntu-latest + timeout-minutes: 2 strategy: matrix: node-version: [22] diff --git a/.github/workflows/update-integration-list.yml b/.github/workflows/update-integration-list.yml index ef68a5c54..35e012c16 100644 --- a/.github/workflows/update-integration-list.yml +++ b/.github/workflows/update-integration-list.yml @@ -17,6 +17,7 @@ jobs: group: update-integration cancel-in-progress: false runs-on: ubuntu-latest + timeout-minutes: 5 steps: - name: Obtain token id: obtainToken