Skip to content

POC build on ARM64 #891

POC build on ARM64

POC build on ARM64 #891

Workflow file for this run

name: test
on:
workflow_call:
inputs:
build_arch:
required: true
type: string
default: 'x86_64'
pull_request:
paths-ignore:
- "**/*.asciidoc"
- "**/*.md"
- "**/*.png"
push:
branches:
- main
paths-ignore:
- "**/*.asciidoc"
- "**/*.md"
- "**/*.png"
permissions:
contents: read
## Concurrency only allowed in the main branch.
## So old builds running for old commits within the same Pull Request are cancelled
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
build:
uses: ./.github/workflows/build.yml
setup-build-matrix:
uses: ./.github/workflows/build-arch-matrix-generator.yml
with:
build_arch: ${{ inputs.build_arch }}
phpt-tests:
name: phpt-tests
runs-on: ubuntu-latest
needs:
- build
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
php-version:
- "7.2"
- "7.3"
- "7.4"
- "8.0"
- "8.1"
- "8.2"
- "8.3"
arch: ${{ fromJson(needs.setup-build-matrix.outputs.matrix-combinations) }}
env:
PHP_VERSION: ${{ matrix.php-version }}
BUILD_ARCHITECTURE: ${{ matrix.arch }}
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: package-parts-${{ matrix.arch }}
path: agent/native/_build/${{ matrix.arch }}-release/
- if: ${{ matrix.run_qemu }}
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Prepare
run: make -f .ci/Makefile prepare
- name: phpt-unit-tests
run: |
tree agent/native/_build/
uname -a
make -f .ci/Makefile run-phpt-tests
static-checks-unit-tests:
name: static-checks-unit-tests
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
php-version:
- "7.2"
- "7.3"
- "7.4"
- "8.0"
- "8.1"
- "8.2"
- "8.3"
dockerfile:
- "Dockerfile"
- "Dockerfile.alpine"
env:
PHP_VERSION: ${{ matrix.php-version }}
DOCKERFILE: ${{ matrix.dockerfile }}
steps:
- uses: actions/checkout@v4
- name: Prepare
run: make -f .ci/Makefile prepare
- name: Static Check / Unit tests
run: make -f .ci/Makefile static-check-unit-test
- if: success() || failure()
name: Prepare Upload
run: >-
find build
-name "*junit.xml"
-exec bash -c 'mv {} "build/${PHP_VERSION}-${DOCKERFILE}-$(basename {})"'
\;
- if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: test-results
path: build/*junit.xml
if-no-files-found: error
build-packages:
needs:
- build
- static-checks-unit-tests
- phpt-tests
uses: ./.github/workflows/build-packages.yml
generate-test-packages-matrix:
uses: ./.github/workflows/generate-matrix.yml
test-packages:
needs:
- build-packages
- generate-test-packages-matrix
uses: ./.github/workflows/test-packages.yml
with:
include: ${{ needs.generate-test-packages-matrix.outputs.include }}
# The very last job to report whether the Workflow passed.
# This will act as the Branch Protection gatekeeper
ci:
needs:
- test-packages
runs-on: ubuntu-latest
steps:
- name: report
run: echo "CI workflow passed"