diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 0000000000..21d557da87 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +self-hosted-runner: + # Blacksmith runner labels are custom labels actionlint does not know about. + labels: + - blacksmith-2vcpu-ubuntu-2404 + - blacksmith-4vcpu-ubuntu-2404 diff --git a/.github/actions/setup-php-env/action.yml b/.github/actions/setup-php-env/action.yml index 32b1938846..0f5452c080 100644 --- a/.github/actions/setup-php-env/action.yml +++ b/.github/actions/setup-php-env/action.yml @@ -78,7 +78,11 @@ runs: tools: ${{ inputs.tools }} php-version: ${{ inputs.php-version }} ini-values: ${{ inputs.ini-values }} - extensions: ${{ inputs.extensions }} + # The runner image ships ext-redis 5.3.7 pre-installed, which conflicts with + # symfony/cache (requires ext-redis >= 6.1) and breaks `composer install`. + # Pin a compatible phpredis (>= 6.1, and new enough to build on PHP 8.5) so the + # extension stays available for the redis cache tests instead of being dropped. + extensions: "${{ inputs.extensions }}, redis-6.3.0" coverage: ${{ inputs.coverage != '' && inputs.coverage || null }} env: ${{ inputs.php-env != '' && fromJSON(inputs.php-env) || fromJSON('{}') }} diff --git a/.github/workflows/baseline.yml b/.github/workflows/baseline.yml index d8bbfbae7f..e136cf053d 100644 --- a/.github/workflows/baseline.yml +++ b/.github/workflows/baseline.yml @@ -20,7 +20,7 @@ permissions: jobs: build-archives: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 permissions: contents: read packages: write @@ -58,8 +58,8 @@ jobs: run: | ./build/flow.phar --version - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 + - name: Setup Blacksmith Builder + uses: useblacksmith/setup-docker-builder@6ff44f8e5255f9d8aa31ef22f7e57a2d926b7da0 # v1.11.0 - name: Set up QEMU uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 @@ -72,7 +72,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: useblacksmith/build-push-action@fb9e3e6a9299c78462bfadd0d93352c316adc9b8 # v2.2.0 with: context: . file: ./Dockerfile @@ -81,8 +81,6 @@ jobs: tags: | ghcr.io/flow-php/flow:latest target: flow - cache-from: type=gha - cache-to: type=gha,mode=max - name: "Prepare artifact name" if: ${{ github.event_name == 'push' }} @@ -98,7 +96,7 @@ jobs: overwrite: true publish-website: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 strategy: fail-fast: false matrix: diff --git a/.github/workflows/commit-authorship.yml b/.github/workflows/commit-authorship.yml index cf4cf0f0b0..268d1fcc07 100644 --- a/.github/workflows/commit-authorship.yml +++ b/.github/workflows/commit-authorship.yml @@ -14,7 +14,7 @@ permissions: # Code borrowed from: https://github.com/carthage-software/mago/blob/main/.github/workflows/commit-authorship.yml jobs: check-commit-authorship: - runs-on: "ubuntu-latest" + runs-on: "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout" uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 726f67e7c4..e8c2ef4ee5 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -6,7 +6,7 @@ permissions: jobs: dependabot: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' }} steps: - name: Dependabot metadata diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8d8bfe45d9..c27f3d044f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,7 +21,7 @@ permissions: jobs: documentation-linter: - runs-on: "ubuntu-latest" + runs-on: "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout" uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/job-arrow-extension.yml b/.github/workflows/job-arrow-extension.yml index ab96b99c7b..49897170e8 100644 --- a/.github/workflows/job-arrow-extension.yml +++ b/.github/workflows/job-arrow-extension.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] php: ['8.3', '8.4', '8.5'] steps: @@ -121,7 +121,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/job-extension-tests.yml b/.github/workflows/job-extension-tests.yml index 82874aee21..bd9caf3a50 100644 --- a/.github/workflows/job-extension-tests.yml +++ b/.github/workflows/job-extension-tests.yml @@ -17,7 +17,7 @@ jobs: - "8.4" - "8.5" operating-system: - - "ubuntu-latest" + - "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout" diff --git a/.github/workflows/job-flow-php-extension.yml b/.github/workflows/job-flow-php-extension.yml index dac8c86034..374eb4cb9e 100644 --- a/.github/workflows/job-flow-php-extension.yml +++ b/.github/workflows/job-flow-php-extension.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] php: ['8.3', '8.4', '8.5'] steps: @@ -118,7 +118,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/job-mutation-tests.yml b/.github/workflows/job-mutation-tests.yml index 3933ef1554..ac2fcb397f 100644 --- a/.github/workflows/job-mutation-tests.yml +++ b/.github/workflows/job-mutation-tests.yml @@ -12,7 +12,7 @@ jobs: php-version: - "8.3" operating-system: - - "ubuntu-latest" + - "blacksmith-4vcpu-ubuntu-2404" steps: - name: "Checkout" diff --git a/.github/workflows/job-pg-query-extension.yml b/.github/workflows/job-pg-query-extension.yml index f562038bcd..38d40c05cd 100644 --- a/.github/workflows/job-pg-query-extension.yml +++ b/.github/workflows/job-pg-query-extension.yml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] php: ['8.3', '8.4', '8.5'] steps: @@ -62,7 +62,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-latest', 'macos-latest'] + os: ['blacksmith-2vcpu-ubuntu-2404', 'macos-latest'] steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/job-phpunit-telemetry-tests.yml b/.github/workflows/job-phpunit-telemetry-tests.yml index 80fad3eab7..d7aa641dc9 100644 --- a/.github/workflows/job-phpunit-telemetry-tests.yml +++ b/.github/workflows/job-phpunit-telemetry-tests.yml @@ -11,7 +11,7 @@ permissions: jobs: tests: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 timeout-minutes: 15 services: postgres: diff --git a/.github/workflows/job-static-analyze.yml b/.github/workflows/job-static-analyze.yml index 5a03c154da..6a6b5fe6e3 100644 --- a/.github/workflows/job-static-analyze.yml +++ b/.github/workflows/job-static-analyze.yml @@ -13,7 +13,7 @@ jobs: php-version: - "8.3" operating-system: - - "ubuntu-latest" + - "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout" diff --git a/.github/workflows/job-tests.yml b/.github/workflows/job-tests.yml index 230dbfb600..59fda798f9 100644 --- a/.github/workflows/job-tests.yml +++ b/.github/workflows/job-tests.yml @@ -54,7 +54,7 @@ jobs: - "8.4" - "8.5" operating-system: - - "ubuntu-latest" + - "blacksmith-4vcpu-ubuntu-2404" steps: - name: "Checkout" diff --git a/.github/workflows/monorepo-split.yml b/.github/workflows/monorepo-split.yml index dec932787d..8ad714ab6f 100644 --- a/.github/workflows/monorepo-split.yml +++ b/.github/workflows/monorepo-split.yml @@ -15,7 +15,7 @@ permissions: jobs: packages_split: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 strategy: fail-fast: false diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index d9adb415de..9042481b39 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -13,7 +13,7 @@ jobs: automation_github_token: "${{ secrets.GITHUB_TOKEN }}" pull-request-size: - runs-on: ubuntu-latest + runs-on: blacksmith-2vcpu-ubuntu-2404 continue-on-error: true permissions: pull-requests: write diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c49534b62..49a305af59 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: php-version: - "8.3" operating-system: - - "ubuntu-latest" + - "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout" @@ -63,8 +63,8 @@ jobs: --output="./build/flow.phar.asc" ./build/flow.phar - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 + - name: Setup Blacksmith Builder + uses: useblacksmith/setup-docker-builder@6ff44f8e5255f9d8aa31ef22f7e57a2d926b7da0 # v1.11.0 - name: Set up QEMU uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 @@ -77,7 +77,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 + uses: useblacksmith/build-push-action@fb9e3e6a9299c78462bfadd0d93352c316adc9b8 # v2.2.0 with: context: . file: ./Dockerfile @@ -86,8 +86,6 @@ jobs: tags: | ghcr.io/flow-php/flow:${{ github.ref_name }} target: flow - cache-from: type=gha - cache-to: type=gha,mode=max - name: "Upload binaries to release" if: ${{ startsWith(github.ref, 'refs/tags/') }} diff --git a/.github/workflows/test-website.yml b/.github/workflows/test-website.yml index c2fe5e5d04..8529e63446 100644 --- a/.github/workflows/test-website.yml +++ b/.github/workflows/test-website.yml @@ -23,7 +23,7 @@ jobs: php-version: - "8.3" operating-system: - - "ubuntu-latest" + - "blacksmith-2vcpu-ubuntu-2404" steps: - name: "Checkout"