diff --git a/.github/workflows/build-swow.yml b/.github/workflows/build-swow.yml index 74d6b08..9030d59 100644 --- a/.github/workflows/build-swow.yml +++ b/.github/workflows/build-swow.yml @@ -54,8 +54,54 @@ jobs: default => substr($phpVersion, 0, 1) }; echo "::set-output name=version::" . $version . PHP_EOL; - - name: Build - run: export PHP_BUILD_VERSION=${{ steps.fetch-php-build-version.outputs.version }} && docker-compose build alpine-swow - - name: Push Images to Docker Hub - if: ${{ github.ref == 'refs/heads/build'}} - run: ./.github/workflows/push.sh + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: limingxinleo + password: ${{ secrets.DOCKERHUB_ACCESSTOKEN }} + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + hyperf/hyperf + tags: | + type=semver,pattern=${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-${{ env.ENGINE }}${{ env.SPEC }}-v{{version}},value=${{ env.SW_VERSION }} + type=semver,pattern=${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-${{ env.ENGINE }}${{ env.SPEC }}-v{{major}}.{{minor}},value=${{ env.SW_VERSION }} + type=semver,pattern=${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-${{ env.ENGINE }}${{ env.SPEC }}-v{{major}},value=${{ env.SW_VERSION }} + type=raw,value=${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-${{ env.ENGINE }}${{ env.SPEC }} + - name: Build and export to Docker + uses: docker/build-push-action@v5 + with: + context: ${{ matrix.php-version }}/alpine/swow + load: true + tags: hyperf/hyperf:${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-swow + file: ${{ matrix.php-version }}/alpine/swow/Dockerfile${{ env.SPEC }} + build-args: | + "ALPINE_VERSION=${{ matrix.alpine-version }}" + "COMPOSER_VERSION=${{ env.COMPOSER_VERSION }}" + "PHP_BUILD_VERSION=${{ steps.fetch-php-build-version.outputs.version }}" + "SW_VERSION=${{ env.SW_VERSION }}" + - name: Check + run: | + docker run --entrypoint php hyperf/hyperf:${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-swow -v + docker run --entrypoint php hyperf/hyperf:${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-swow --ri swow + - name: Push + if: ${{ github.ref == 'refs/heads/build' }} + uses: docker/build-push-action@v5 + with: + context: ${{ matrix.php-version }}/alpine/swow + push: true + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + file: ${{ matrix.php-version }}/alpine/swow/Dockerfile${{ env.SPEC }} + build-args: | + "ALPINE_VERSION=${{ matrix.alpine-version }}" + "COMPOSER_VERSION=${{ env.COMPOSER_VERSION }}" + "PHP_BUILD_VERSION=${{ steps.fetch-php-build-version.outputs.version }}" + "SW_VERSION=${{ env.SW_VERSION }}