Merge branch 'main' into source-tree-issue #671
Workflow file for this run
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: CI | |
on: | |
push: | |
branches-ignore: | |
- 'main' | |
env: | |
BUILDER_VERSION: v0.8.18 | |
BUILDER_SOURCE: releases | |
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net | |
PACKAGE_NAME: aws-crt-php | |
LINUX_BASE_IMAGE: ubuntu-16-x64 | |
RUN: ${{ github.run_id }}-${{ github.run_number }} | |
jobs: | |
php-5_5-linux-x64: | |
name: php-linux-x64 (5.5) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP with Xdebug | |
uses: shivammathur/setup-php@v2 | |
with: | |
coverage: xdebug | |
php-version: 5.5 | |
ini-values: xdebug.overload_var_dump=0, memory_limit=4G, phar.readonly=false | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build for PHP 5.5 | |
env: | |
CC: clang | |
CXX: clang++ | |
run: | | |
phpize | |
./configure | |
# Normally, CRT uses the system's default libcrypto.so. | |
# But in this CI run, PHP 5.5 is using a different older libcrypto.so, as PHP 5.5 cannot build with openssl >=1.1.1. | |
# When an applications uses two different libcrypto.so at the same time, things tend to explode. | |
# Therefore, in this CI run we build AWS-LC statically, and use its libcrypto.a instead. | |
USE_OPENSSL=OFF make | |
./dev-scripts/run_tests.sh | |
php-linux-x64: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- "5.6" | |
- "7.0" | |
- "7.1" | |
- "7.2" | |
- "7.3" | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
- "8.2" | |
steps: | |
- name: Setup PHP with Xdebug | |
uses: shivammathur/setup-php@v2 | |
with: | |
coverage: xdebug | |
php-version: ${{matrix.version}} | |
ini-values: xdebug.overload_var_dump=0, memory_limit=4G, phar.readonly=false | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Run tests | |
env: | |
CC: clang | |
CXX: clang++ | |
run: | | |
phpize | |
./configure | |
make | |
./dev-scripts/run_tests.sh | |
# linux-arm: | |
# name: ARM (${{ matrix.arch }}) | |
# runs-on: ubuntu-latest | |
# strategy: | |
# matrix: | |
# arch: [armv6, armv7, arm64] | |
# steps: | |
# - name: Build ${{ env.PACKAGE_NAME }} | |
# run: | | |
# python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')" | |
# chmod a+x builder | |
# ./builder build -p ${{ env.PACKAGE_NAME }} --target=linux-${{ matrix.arch }} --spec=downstream | |
windows-vc16: | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: cmd # use CMD instead of powershell to catch error from bat script | |
strategy: | |
matrix: | |
arch: [x64] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- id: setup-php-sdk | |
uses: php/[email protected] | |
with: | |
version: 8.1 | |
arch: ${{ matrix.arch }} | |
ts: ts | |
- uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: ${{ matrix.arch }} | |
toolset: ${{steps.setup-php-sdk.outputs.toolset}} | |
# not sure why CMD can't do multiline run statements | |
- run: phpize | |
- run: .\configure --with-prefix=${{steps.setup-php-sdk.outputs.prefix}} --enable-awscrt=shared --enable-cli --enable-openssl | |
- run: nmake | |
- run: nmake generate-php-ini | |
- run: .\dev-scripts\run_tests.bat ${{steps.setup-php-sdk.outputs.prefix}}\php | |
# windows-vc14: | |
# runs-on: windows-latest | |
# strategy: | |
# matrix: | |
# arch: [x86, x64] | |
# steps: | |
# - uses: ilammy/msvc-dev-cmd@v1 | |
# with: | |
# toolset: 14.0 | |
# arch: ${{ matrix.arch }} | |
# uwp: false | |
# spectre: true | |
# - name: Build ${{ env.PACKAGE_NAME }} + consumers | |
# run: | | |
# python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')" | |
# python builder.pyz build -p ${{ env.PACKAGE_NAME }} downstream | |
macos: | |
runs-on: macos-${{ matrix.version }} | |
strategy: | |
matrix: | |
version: [13] | |
steps: | |
# Force PHP to 8.0 | |
# Doing this because tests fail in PHP 8.1 (default on macos Github Runner as of Dec 2021) | |
# due to the old version of PHPUnit we're using. | |
# We're using an old PHPUnit because it's compatible our min supported PHP 5.5. | |
# Quick fix is to force PHP version back to 8.0, which can still run our tests without error. | |
# A real solution is to get our tests working on all PHP versions | |
# (maybe don't use PHPUnit, maybe raise our min supported PHP version so we can upgrade, | |
# or maybe use PHPUnit-Polyfills so we can use a modern PHPUnit with old PHP) | |
- name: Setup PHP 8.0 | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.0' | |
- name: Build PHP 8 extension and test | |
run: | | |
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')" | |
chmod a+x builder | |
./builder build -p ${{ env.PACKAGE_NAME }} --spec=downstream | |
pecl-package-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.0' | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Test PECL package build | |
run: | | |
python3 dev-scripts/prepare_pecl_release.py --version 1.0.0 | |
sudo pecl install awscrt-1.0.0.tgz |