Skip to content

Bump php from 8.4.0RC1-zts to 8.4.0RC2-zts (#83) #225

Bump php from 8.4.0RC1-zts to 8.4.0RC2-zts (#83)

Bump php from 8.4.0RC1-zts to 8.4.0RC2-zts (#83) #225

Workflow file for this run

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