Bump php from 8.4.0RC1-zts to 8.4.0RC2-zts (#83) #225
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-cli | |
concurrency: | |
cancel-in-progress: true | |
group: ${{ github.ref }}-build | |
on: | |
release: | |
types: | |
- created | |
push: | |
branches: | |
- v2 | |
pull_request: | |
branches: | |
- v2 | |
jobs: | |
build-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ 'amd64', 'arm64' ] | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.HUB_USERNAME }} | |
password: ${{ secrets.HUB_PASSWORD }} | |
- name: Configure QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Configure docker | |
uses: docker/setup-buildx-action@v3 | |
with: | |
platforms: ${{ matrix.platform }} | |
- name: Expose GitHub Runtime | |
uses: crazy-max/ghaction-github-runtime@v3 | |
- name: Build sources | |
run: | | |
echo "${{ secrets.GITHUB_TOKEN }}" > TOKEN | |
docker buildx build --secret id=github-token,src=./TOKEN --cache-to type=gha,mode=max,scope=${{ matrix.platform }} --cache-from type=gha,scope=${{ matrix.platform }} --pull --load --platform linux/${{ matrix.platform }} --target cli-base-alpine -t builder . | |
- name: Copy build | |
run: | | |
docker create --name builder builder | |
docker cp builder:/go/src/app/cli/dist/dphp bin/dphp | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dphp-${{ runner.os }}-${{ matrix.platform }} | |
path: bin/dphp | |
build-docker: | |
runs-on: self-hosted | |
outputs: | |
image: ${{ steps.meta.outputs.tags }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.HUB_USERNAME }} | |
password: ${{ secrets.HUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Configure QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Configure docker | |
uses: docker/setup-buildx-action@v3 | |
- name: Calculate version | |
run: | | |
if [ "${GITHUB_REF_TYPE}" == "tag" ]; then | |
export VERSION=${GITHUB_REF_NAME:1} | |
else | |
export VERSION=${GITHUB_SHA} | |
fi | |
echo "VERSION=${VERSION}" >> "${GITHUB_ENV}" | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/${{ github.repository_owner }}/durable-php/runtime | |
tags: | | |
type=schedule,pattern=latest | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
- name: Build | |
uses: docker/build-push-action@v6 | |
with: | |
context: ./ | |
file: Dockerfile | |
target: durable-php | |
build-args: | | |
VERSION=${{ env.VERSION }} | |
push: true | |
pull: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
builder: ${{ steps.buildx.outputs.name }} | |
cache-from: type=gha,scope=image | |
cache-to: type=gha,mode=max,scope=image | |
platforms: linux/amd64,linux/arm64 | |
- name: Build Test Image | |
uses: docker/build-push-action@v6 | |
with: | |
context: ./ | |
file: Dockerfile | |
target: test | |
push: true | |
pull: true | |
tags: ghcr.io/${{ github.repository_owner }}/durable-php/runtime-tests:${{ github.sha }} | |
labels: ${{ steps.meta.outputs.labels }} | |
builder: ${{ steps.buildx.outputs.name }} | |
cache-from: type=gha,scope=image | |
platforms: linux/amd64 | |
build-osx: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ 'arm64', 'x86_64' ] | |
runs-on: ${{ matrix.platform == 'arm64' && 'macos-14' || 'macos-13' }} | |
env: | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
cache-dependency-path: cli/go.sum | |
go-version-file: cli/go.mod | |
- name: Configure Version | |
run: | | |
if [ "${GITHUB_REF_TYPE}" == "tag" ]; then | |
export VERSION=${GITHUB_REF_NAME:1} | |
else | |
export VERSION=${GITHUB_SHA} | |
fi | |
echo "VERSION=${VERSION}" >> "${GITHUB_ENV}" | |
- name: Configure cache | |
uses: actions/cache@v4 | |
with: | |
path: dist | |
key: ${{ matrix.platform }}-${{ hashFiles('cli/*.mod') }} | |
- name: Run doctor | |
run: | | |
export GITHUB_TOKEN "${{ secrets.GITHUB_TOKEN }}" | |
BUILD=no cli/build-php.sh | |
- name: Build php | |
run: | | |
export GITHUB_TOKEN "${{ secrets.GITHUB_TOKEN }}" | |
cli/build-php.sh | |
- name: Build cli | |
run: | | |
export GITHUB_TOKEN "${{ secrets.GITHUB_TOKEN }}" | |
cd cli && ./build.sh | |
- run: ls -lah cli/dist/ | |
- run: ls -lah dist/ || true | |
- name: Archive artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dphp-${{ runner.os }}-${{ matrix.platform }} | |
path: cli/dist/dphp | |
performance-test: | |
name: Performance Test | |
needs: | |
- build-docker | |
runs-on: self-hosted | |
container: ghcr.io/${{ github.repository_owner }}/durable-php/runtime-tests:${{ github.sha }} | |
services: | |
dphp: | |
image: ghcr.io/${{ github.repository_owner }}/durable-php/runtime-tests:${{ github.sha }} | |
ports: | |
- 8080:8080 | |
volumes: | |
- ${{ github.workspace }}:/app | |
env: | |
DPHP_HOST: http://dphp:8080 | |
steps: | |
- uses: actions/checkout@v4 | |
- run: | | |
dphp composer install --ignore-platform-reqs | |
- run: | | |
echo "Running perf test" | |
dphp exec tests/PerformanceTests/PerformanceClient.php | |
echo "Running fan out/in test" | |
dphp exec tests/PerformanceTests/FanOutFanInClient.php | |
- uses: peter-evans/find-comment@v3 | |
continue-on-error: true | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
body-includes: Performance Metrics | |
- uses: peter-evans/create-or-update-comment@v4 | |
continue-on-error: true | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body-path: report.md |