diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21a7c78..3380cd7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,8 @@ permissions: jobs: setup: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -36,7 +37,8 @@ jobs: lint: needs: setup - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -67,7 +69,8 @@ jobs: typecheck: needs: setup - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -95,7 +98,8 @@ jobs: test: needs: setup - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 strategy: matrix: python-version: ["3.12", "3.13"] diff --git a/.github/workflows/devcontainer-prebuild.yml b/.github/workflows/devcontainer-prebuild.yml new file mode 100644 index 0000000..e74fec7 --- /dev/null +++ b/.github/workflows/devcontainer-prebuild.yml @@ -0,0 +1,34 @@ +name: Devcontainer prebuild + +on: + push: + branches: [main] + paths: + - .devcontainer/** + +permissions: + contents: read + packages: write + +jobs: + prebuild: + name: Build and push devcontainer cache image + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + + - name: Log in to GHCR + uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push devcontainer image + uses: devcontainers/ci@513af61f4de4f75d37e4438f184ba4358f0fc1ca # v0.3 + with: + imageName: ghcr.io/aseguragonzalez/python-seedwork-devcontainer + push: always + runCmd: "true" diff --git a/.github/workflows/devcontainer-quality.yml b/.github/workflows/devcontainer-quality.yml index 2c7bede..3600fc8 100644 --- a/.github/workflows/devcontainer-quality.yml +++ b/.github/workflows/devcontainer-quality.yml @@ -13,7 +13,8 @@ permissions: jobs: devcontainer-quality: name: Install and check (inside devcontainer) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 10 permissions: contents: read @@ -24,6 +25,8 @@ jobs: - name: Run quality gate inside devcontainer uses: devcontainers/ci@513af61f4de4f75d37e4438f184ba4358f0fc1ca # v0.3 with: + cacheFrom: ghcr.io/aseguragonzalez/python-seedwork-devcontainer + push: never runCmd: | make install make check diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c4feefc..c9e28d4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,8 @@ permissions: jobs: deploy: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 diff --git a/.github/workflows/pr-title-lint.yml b/.github/workflows/pr-title-lint.yml index 35c4026..28d931e 100644 --- a/.github/workflows/pr-title-lint.yml +++ b/.github/workflows/pr-title-lint.yml @@ -15,7 +15,8 @@ permissions: jobs: title-lint: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 steps: - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 env: diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 630dca5..fae5b9d 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -16,7 +16,8 @@ jobs: pre-release: needs: ci - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 concurrency: release permissions: contents: write diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e27dffe..cd89b32 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,8 @@ jobs: release: needs: ci - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 + timeout-minutes: 5 concurrency: release permissions: contents: write