diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 98596e5..51c53f3 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,6 +4,12 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 2 + groups: + crazy-max-dot-github: + patterns: + - "crazy-max/.github/*" labels: - "dependencies" - "bot" @@ -11,6 +17,8 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 2 versioning-strategy: "increase" allow: - dependency-type: "production" diff --git a/.github/workflows/.e2e-run.yml b/.github/workflows/.e2e-run.yml index 552307e..a4485d1 100644 --- a/.github/workflows/.e2e-run.yml +++ b/.github/workflows/.e2e-run.yml @@ -1,6 +1,9 @@ # reusable workflow name: .e2e-run +permissions: + contents: read + on: workflow_call: inputs: @@ -19,12 +22,11 @@ on: slug: required: false type: string - username_secret: + secrets: + registry_username: required: false - type: string - password_secret: + registry_password: required: false - type: string env: HARBOR_VERSION: v2.13.2 @@ -50,17 +52,21 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up env if: inputs.type == 'local' + env: + ID: ${{ inputs.id }} run: | - cat ./.github/e2e/${{ inputs.id }}/env >> $GITHUB_ENV + cat ./.github/e2e/${ID}/env >> $GITHUB_ENV - name: Set up BuildKit config + env: + TYPE: ${{ inputs.type }} run: | touch /tmp/buildkitd.toml - if [ "${{ inputs.type }}" = "local" ]; then + if [ "${TYPE}" = "local" ]; then echo -e "[registry.\"${{ env.REGISTRY_FQDN }}\"]\nhttp = true\ninsecure = true" > /tmp/buildkitd.toml fi - @@ -77,13 +83,15 @@ jobs: - name: Install ${{ inputs.name }} if: inputs.type == 'local' + env: + ID: ${{ inputs.id }} run: | - sudo -E bash ./.github/e2e/${{ inputs.id }}/install.sh + sudo -E bash ./.github/e2e/${ID}/install.sh sudo chown $(id -u):$(id -g) -R ~/.docker - name: Docker meta id: meta - uses: docker/metadata-action@v6 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 with: images: ${{ env.REGISTRY_SLUG || inputs.slug }} tags: | @@ -92,10 +100,10 @@ jobs: type=raw,gh-runid-${{ github.run_id }} - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ matrix.buildx_version }} buildkitd-config: /tmp/buildkitd.toml @@ -105,12 +113,12 @@ jobs: network=host - name: Login to Registry - if: github.event_name != 'pull_request' && (env.REGISTRY_USER || inputs.username_secret) != '' - uses: docker/login-action@v4 + if: github.event_name != 'pull_request' && (inputs.type == 'remote' || env.REGISTRY_USER != '') + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: ${{ env.REGISTRY_FQDN || inputs.registry }} - username: ${{ env.REGISTRY_USER || secrets[inputs.username_secret] }} - password: ${{ env.REGISTRY_PASSWORD || secrets[inputs.password_secret] }} + username: ${{ env.REGISTRY_USER || secrets.registry_username }} + password: ${{ env.REGISTRY_PASSWORD || secrets.registry_password }} - name: Build and push uses: ./ @@ -125,10 +133,14 @@ jobs: cache-to: type=inline - name: Inspect image + env: + SLUG: ${{ env.REGISTRY_SLUG || inputs.slug }} run: | - docker pull ${{ env.REGISTRY_SLUG || inputs.slug }}:${{ steps.meta.outputs.version }} - docker image inspect ${{ env.REGISTRY_SLUG || inputs.slug }}:${{ steps.meta.outputs.version }} + docker pull ${SLUG}:${{ steps.meta.outputs.version }} + docker image inspect ${SLUG}:${{ steps.meta.outputs.version }} - name: Check manifest + env: + SLUG: ${{ env.REGISTRY_SLUG || inputs.slug }} run: | - docker buildx imagetools inspect ${{ env.REGISTRY_SLUG || inputs.slug }}:${{ steps.meta.outputs.version }} --format '{{json .}}' + docker buildx imagetools inspect ${SLUG}:${{ steps.meta.outputs.version }} --format '{{json .}}' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b7e034..ecf2bea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,8 @@ name: ci +permissions: + contents: read + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -33,12 +36,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -53,22 +56,22 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -102,22 +105,22 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -161,20 +164,20 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -210,17 +213,17 @@ jobs: DOCKER_IMAGE: localhost:5000/name/app services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Docker meta id: meta - uses: docker/metadata-action@v6 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 with: images: ${{ env.DOCKER_IMAGE }} tags: | @@ -233,7 +236,7 @@ jobs: type=sha - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -272,7 +275,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Stop docker run: | @@ -298,13 +301,13 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -332,13 +335,13 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Build id: docker_build @@ -354,7 +357,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Build uses: ./ @@ -373,10 +376,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -396,10 +399,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -421,10 +424,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -445,10 +448,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -467,10 +470,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -492,10 +495,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -515,10 +518,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -540,10 +543,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -576,10 +579,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ matrix.buildx }} driver-opts: | @@ -613,16 +616,16 @@ jobs: attr: '' services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -665,16 +668,16 @@ jobs: output: /tmp/buildx-build services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -717,20 +720,20 @@ jobs: - multi-sudo services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -786,16 +789,16 @@ jobs: push: true services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver: ${{ matrix.driver }} @@ -856,19 +859,19 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -905,19 +908,19 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -946,19 +949,19 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -967,7 +970,7 @@ jobs: buildkitd-flags: --debug - name: Cache Build - uses: actions/cache@v5 + uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-local-test-${{ github.sha }} @@ -1004,7 +1007,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Uninstall docker cli run: | @@ -1015,7 +1018,7 @@ jobs: fi - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1033,10 +1036,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1055,10 +1058,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver: docker @@ -1083,16 +1086,16 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1120,7 +1123,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set malformed docker config run: | @@ -1136,7 +1139,7 @@ jobs: runs-on: ubuntu-latest services: squid-proxy: - image: ubuntu/squid:latest + image: ubuntu/squid:latest@sha256:6a097f68bae708cedbabd6188d68c7e2e7a38cedd05a176e1cc0ba29e3bbe029 ports: - 3128:3128 steps: @@ -1147,7 +1150,7 @@ jobs: curl --retry 5 --retry-all-errors --retry-delay 0 --connect-timeout 5 --proxy http://127.0.0.1:3128 -v --insecure --head https://www.google.com - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set proxy config run: | @@ -1155,7 +1158,7 @@ jobs: echo '{"proxies":{"default":{"httpProxy":"http://127.0.0.1:3128","httpsProxy":"http://127.0.0.1:3128"}}}' > ~/.docker/config.json - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1173,7 +1176,7 @@ jobs: runs-on: ubuntu-latest services: squid-proxy: - image: ubuntu/squid:latest + image: ubuntu/squid:latest@sha256:6a097f68bae708cedbabd6188d68c7e2e7a38cedd05a176e1cc0ba29e3bbe029 ports: - 3128:3128 steps: @@ -1184,10 +1187,10 @@ jobs: curl --retry 5 --retry-all-errors --retry-delay 0 --connect-timeout 5 --proxy http://127.0.0.1:3128 -v --insecure --head https://www.google.com - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1209,17 +1212,17 @@ jobs: DOCKER_IMAGE: localhost:5000/name/app services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Docker meta id: meta - uses: docker/metadata-action@v6 + uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0 with: images: ${{ env.DOCKER_IMAGE }} tags: | @@ -1232,7 +1235,7 @@ jobs: type=sha - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1259,19 +1262,19 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1308,19 +1311,19 @@ jobs: runs-on: ubuntu-latest services: registry: - image: registry:2 + image: registry:2.8.3@sha256:a3d8aaa63ed8681a604f1dea0aa03f100d5895b6a58ace528858a7b332415373 ports: - 5000:5000 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v4 + uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1350,12 +1353,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1373,12 +1376,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: v0.12.1 driver-opts: | @@ -1394,12 +1397,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1423,12 +1426,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1453,10 +1456,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ matrix.buildx-version }} driver-opts: | @@ -1473,10 +1476,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1495,10 +1498,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | @@ -1525,12 +1528,12 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: path: action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 + uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 with: version: ${{ inputs.buildx-version || env.BUILDX_VERSION }} driver-opts: | diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 07ce72d..843bacd 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,5 +1,8 @@ name: codeql +permissions: + contents: read + on: push: branches: @@ -7,21 +10,19 @@ on: - 'releases/v*' pull_request: -permissions: - actions: read - contents: read - security-events: write - env: NODE_VERSION: "24" jobs: analyze: runs-on: ubuntu-latest + permissions: + contents: read + security-events: write steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Enable corepack run: | @@ -29,17 +30,17 @@ jobs: yarn --version - name: Set up Node - uses: actions/setup-node@v6 + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: ${{ env.NODE_VERSION }} - name: Initialize CodeQL - uses: github/codeql-action/init@v4 + uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1 with: languages: javascript-typescript build-mode: none - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4 + uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1 with: category: "/language:javascript-typescript" diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 9e03d50..791a196 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -1,5 +1,8 @@ name: e2e +permissions: + contents: read + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -24,77 +27,71 @@ jobs: - name: Distribution id: distribution + auth: none type: local - name: Docker Hub registry: '' slug: ghactionstest/ghactionstest - username_secret: DOCKERHUB_USERNAME - password_secret: DOCKERHUB_TOKEN + auth: dockerhub type: remote - name: GitHub registry: ghcr.io slug: ghcr.io/docker-ghactiontest/test - username_secret: GHCR_USERNAME - password_secret: GHCR_PAT + auth: ghcr type: remote - name: GitLab registry: registry.gitlab.com slug: registry.gitlab.com/test1716/test - username_secret: GITLAB_USERNAME - password_secret: GITLAB_TOKEN + auth: gitlab type: remote - name: AWS ECR registry: 175142243308.dkr.ecr.us-east-2.amazonaws.com slug: 175142243308.dkr.ecr.us-east-2.amazonaws.com/sandbox/test-docker-action - username_secret: AWS_ACCESS_KEY_ID - password_secret: AWS_SECRET_ACCESS_KEY + auth: aws type: remote - name: AWS ECR Public registry: public.ecr.aws slug: public.ecr.aws/q3b5f1u4/test-docker-action - username_secret: AWS_ACCESS_KEY_ID - password_secret: AWS_SECRET_ACCESS_KEY + auth: aws type: remote - name: Google Artifact Registry registry: us-east4-docker.pkg.dev slug: us-east4-docker.pkg.dev/sandbox-298914/docker-official-github-actions/test-docker-action - username_secret: GAR_USERNAME - password_secret: GAR_JSON_KEY + auth: gar type: remote - name: Azure Container Registry registry: officialgithubactions.azurecr.io slug: officialgithubactions.azurecr.io/test-docker-action - username_secret: AZURE_CLIENT_ID - password_secret: AZURE_CLIENT_SECRET + auth: acr type: remote - name: Quay registry: quay.io slug: quay.io/docker_build_team/ghactiontest - username_secret: QUAY_USERNAME - password_secret: QUAY_TOKEN + auth: quay type: remote - name: Artifactory registry: infradock.jfrog.io slug: infradock.jfrog.io/test-ghaction/build-push-action - username_secret: ARTIFACTORY_USERNAME - password_secret: ARTIFACTORY_TOKEN + auth: artifactory type: remote - name: Harbor id: harbor + auth: none type: local - name: Nexus id: nexus + auth: none type: local with: id: ${{ matrix.id }} @@ -102,6 +99,29 @@ jobs: name: ${{ matrix.name }} registry: ${{ matrix.registry }} slug: ${{ matrix.slug }} - username_secret: ${{ matrix.username_secret }} - password_secret: ${{ matrix.password_secret }} - secrets: inherit + secrets: + # Pass only the two secrets needed by each matrix entry. + registry_username: >- + ${{ + matrix.auth == 'dockerhub' && secrets.DOCKERHUB_USERNAME || + matrix.auth == 'ghcr' && secrets.GHCR_USERNAME || + matrix.auth == 'gitlab' && secrets.GITLAB_USERNAME || + matrix.auth == 'aws' && secrets.AWS_ACCESS_KEY_ID || + matrix.auth == 'gar' && secrets.GAR_USERNAME || + matrix.auth == 'acr' && secrets.AZURE_CLIENT_ID || + matrix.auth == 'quay' && secrets.QUAY_USERNAME || + matrix.auth == 'artifactory' && secrets.ARTIFACTORY_USERNAME || + '' + }} + registry_password: >- + ${{ + matrix.auth == 'dockerhub' && secrets.DOCKERHUB_TOKEN || + matrix.auth == 'ghcr' && secrets.GHCR_PAT || + matrix.auth == 'gitlab' && secrets.GITLAB_TOKEN || + matrix.auth == 'aws' && secrets.AWS_SECRET_ACCESS_KEY || + matrix.auth == 'gar' && secrets.GAR_JSON_KEY || + matrix.auth == 'acr' && secrets.AZURE_CLIENT_SECRET || + matrix.auth == 'quay' && secrets.QUAY_TOKEN || + matrix.auth == 'artifactory' && secrets.ARTIFACTORY_TOKEN || + '' + }} diff --git a/.github/workflows/pr-assign-author.yml b/.github/workflows/pr-assign-author.yml index 571b370..79e6137 100644 --- a/.github/workflows/pr-assign-author.yml +++ b/.github/workflows/pr-assign-author.yml @@ -4,14 +4,14 @@ permissions: contents: read on: - pull_request_target: + pull_request_target: # zizmor: ignore[dangerous-triggers] safe to use without checkout types: - opened - reopened jobs: run: - uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@20ef82212dc54bab5749f5e05576ca6d3c8a5773 # v1.1.0 + uses: crazy-max/.github/.github/workflows/pr-assign-author.yml@bb328ea508cd6a89d0865555ddbeb148e5724aed # v1.3.0 permissions: contents: read pull-requests: write diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index edad97f..57635a7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,5 +1,12 @@ name: publish +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: release: types: @@ -15,7 +22,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Publish - uses: actions/publish-immutable-action@v0.0.4 + uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ea8323b..668aec3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,5 +1,8 @@ name: test +permissions: + contents: read + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -17,16 +20,16 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Test - uses: docker/bake-action@v7 + uses: docker/bake-action@82490499d2e5613fcead7e128237ef0b0ea210f7 # v7.0.0 with: source: . targets: test - name: Upload coverage - uses: codecov/codecov-action@v5 + uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5.5.4 with: files: ./coverage/clover.xml token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/update-dist.yml b/.github/workflows/update-dist.yml index fefe728..8b57b08 100644 --- a/.github/workflows/update-dist.yml +++ b/.github/workflows/update-dist.yml @@ -1,5 +1,12 @@ name: update-dist +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + on: pull_request: types: @@ -8,27 +15,27 @@ on: jobs: update-dist: - if: github.actor == 'dependabot[bot]' + if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == github.event.pull_request.head.repo.full_name runs-on: ubuntu-latest steps: - name: GitHub auth token from GitHub App id: docker-read-app - uses: actions/create-github-app-token@v3 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.GHACTIONS_REPO_WRITE_APP_ID }} private-key: ${{ secrets.GHACTIONS_REPO_WRITE_APP_PRIVATE_KEY }} owner: docker - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: ${{ github.event.pull_request.head.ref }} fetch-depth: 0 - token: ${{ steps.docker-read-app.outputs.token || github.token }} + token: ${{ steps.docker-read-app.outputs.token }} - name: Build - uses: docker/bake-action@v7 + uses: docker/bake-action@82490499d2e5613fcead7e128237ef0b0ea210f7 # v7.0.0 with: source: . targets: build diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 33aed91..2657986 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1,5 +1,8 @@ name: validate +permissions: + contents: read + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -19,11 +22,11 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Generate matrix id: generate - uses: docker/bake-action/subaction/matrix@v7 + uses: docker/bake-action/subaction/matrix@82490499d2e5613fcead7e128237ef0b0ea210f7 # v7.0.0 with: target: validate @@ -38,6 +41,6 @@ jobs: steps: - name: Validate - uses: docker/bake-action@v7 + uses: docker/bake-action@82490499d2e5613fcead7e128237ef0b0ea210f7 # v7.0.0 with: targets: ${{ matrix.target }}