diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index df1c799..2e2ce3b 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -8,11 +8,15 @@ on: jobs: quality: runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-quality:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 - name: Set up environment - run: make setup-quality + run: make setup-image - name: Lint all run: | . .venv/bin/activate @@ -60,7 +64,11 @@ jobs: detect-changes: runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash outputs: user-facing-changed: ${{ steps.detect.outputs.user-facing-changed }} steps: @@ -68,7 +76,7 @@ jobs: with: fetch-depth: 0 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Detect changed paths id: detect env: @@ -84,13 +92,17 @@ jobs: needs: [quality, detect-changes] if: needs.detect-changes.outputs.user-facing-changed == 'true' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-full:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up environment - run: make setup-release + run: make setup-image - name: Release dry-run validation env: PYTHONPATH: src @@ -102,11 +114,15 @@ jobs: pr-review: if: github.event_name == 'pull_request' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Run automated PR review env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} @@ -129,14 +145,18 @@ jobs: needs.quality.result == 'success' && needs.pr-review.result == 'success' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.REPO_TOKEN }} - name: Set up environment - run: make setup-ci + run: make setup-image - name: Squash merge with task ID env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} diff --git a/.gitea/workflows/post-merge.yml b/.gitea/workflows/post-merge.yml index deffa30..dff0d64 100644 --- a/.gitea/workflows/post-merge.yml +++ b/.gitea/workflows/post-merge.yml @@ -33,7 +33,11 @@ on: jobs: detect-type: runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash outputs: is-release: ${{ steps.check.outputs.is-release }} steps: @@ -41,7 +45,7 @@ jobs: with: fetch-depth: 1 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Check if this is a release commit id: check env: @@ -54,13 +58,17 @@ jobs: needs: [detect-type] if: needs.detect-type.outputs.is-release == 'false' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 5 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Validate latest commit message env: PYTHONPATH: src @@ -74,7 +82,11 @@ jobs: needs: [detect-type] if: needs.detect-type.outputs.is-release == 'false' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-full:latest timeout-minutes: 15 + defaults: + run: + shell: bash outputs: tag: ${{ steps.release-tag.outputs.tag }} steps: @@ -85,7 +97,7 @@ jobs: - name: Set up environment env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} - run: make setup-release + run: make setup-image - name: Configure git run: | git config user.name "devx-ci-bot" @@ -123,7 +135,11 @@ jobs: needs: [release] if: needs.release.outputs.tag != '' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-full:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: @@ -131,7 +147,7 @@ jobs: - name: Set up environment env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} - run: make setup-release + run: make setup-image - name: Build and publish release env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} @@ -158,13 +174,17 @@ jobs: needs: [detect-type] if: needs.detect-type.outputs.is-release == 'false' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Sync documentation to wiki env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }} @@ -189,7 +209,11 @@ jobs: needs: [detect-type] if: always() runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-quality:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: @@ -201,7 +225,7 @@ jobs: git fetch origin master git reset --hard origin/master - name: Set up environment - run: make setup-ci + run: make setup-image - name: Generate and push badges env: PRE_COMMIT_ALLOW_NO_CONFIG: "1" @@ -225,13 +249,17 @@ jobs: needs: [detect-type] if: needs.detect-type.outputs.is-release == 'false' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Update Vikunja task env: VIKUNJA_TOKEN: ${{ secrets.VIKUNJA_TOKEN }} @@ -257,11 +285,15 @@ jobs: needs: [detect-type] if: needs.detect-type.outputs.is-release == 'false' runs-on: docker + container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest timeout-minutes: 10 + defaults: + run: + shell: bash steps: - uses: actions/checkout@v4 - name: Set up environment - run: make setup-ci + run: make setup-image - name: Ensure branch protection and labels env: REPO_TOKEN: ${{ secrets.REPO_TOKEN }}