Skip to content

Commit

Permalink
Support build arm64 for swoole/swow images.
Browse files Browse the repository at this point in the history
  • Loading branch information
limingxinleo committed Jun 17, 2024
1 parent 225888c commit 4e511fe
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 26 deletions.
63 changes: 53 additions & 10 deletions .github/workflows/build-swoole.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,58 @@ 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-swoole
- name: Push Images to Docker Hub
- 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/swoole
load: true
tags: hyperf/hyperf:${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-swoole
file: ${{ matrix.php-version }}/alpine/swoole/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 }}-swoole -v
docker run --entrypoint php hyperf/hyperf:${{ matrix.php-version }}-alpine-v${{ matrix.alpine-version }}-swoole --ri swoole
- name: Push
if: ${{ github.ref == 'refs/heads/build' }}
uses: docker/build-push-action@v5
with:
context: ${{ matrix.php-version }}/alpine/swoole
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
file: ${{ matrix.php-version }}/alpine/swoole/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: Push Images to Other Hubs
if: ${{ github.ref == 'refs/heads/build' }}
run: ./.github/workflows/push.sh
- name: Push the latest images
if: ${{ github.ref == 'refs/heads/build' && matrix.php-version == '8.3' && matrix.alpine-version == '3.19' && matrix.spec == '' }}
run: |
docker push hyperf/hyperf:latest
docker push ghcr.io/hyperf/hyperf-docker/hyperf:latest
docker push hyperf-cloud-docker.pkg.coding.net/hyperf/hyperf/hyperf:latest

57 changes: 53 additions & 4 deletions .github/workflows/build-swow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,57 @@ 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'}}
- 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 }}
- name: Push Images to Other Hubs
if: ${{ github.ref == 'refs/heads/build' }}
run: ./.github/workflows/push.sh
12 changes: 0 additions & 12 deletions .github/workflows/push.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,9 @@
#!/usr/bin/env bash

# Login
docker login --username limingxinleo -p $DOCKERHUB_TOKEN
docker login ghcr.io --username limingxinleo -p $GITHUB_TOKEN
docker login hyperf-cloud-docker.pkg.coding.net --username hyperf-1718463997529 -p $CODING_PASSWORD

# Push to DockerHub
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION%\.*}
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION%%\.*}
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} hyperf/hyperf:latest

docker push hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION}
docker push hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION%\.*}
docker push hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION%%\.*}
docker push hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}

# Push to Github
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} ghcr.io/hyperf/hyperf-docker/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION}
docker tag hyperf/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION} ghcr.io/hyperf/hyperf-docker/hyperf:${PHP_VERSION}-alpine-v${ALPINE_VERSION}-${ENGINE}${SPEC}-${SW_VERSION%\.*}
Expand Down

0 comments on commit 4e511fe

Please sign in to comment.