diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cbaf22b..4586e22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,188 +1,188 @@ -# name: CI +name: CI -# on: -# push: -# branches-ignore: -# - 'main' +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 }} +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 +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@v2 -# with: -# submodules: recursive + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive -# - name: Build for PHP 5.5 -# env: -# CC: clang -# CXX: clang++ -# run: | -# phpize -# ./configure -# make + - name: Build for PHP 5.5 + env: + CC: clang + CXX: clang++ + run: | + phpize + ./configure + make -# - name: Install dependencies -# # get path to composer.phar so we can run it with custom php.ini -# run: | -# COMPOSER_PHAR=$(realpath $(which composer)) -# php -c php.ini $COMPOSER_PHAR update --no-interaction + - name: Install dependencies + # get path to composer.phar so we can run it with custom php.ini + run: | + COMPOSER_PHAR=$(realpath $(which composer)) + php -c php.ini $COMPOSER_PHAR update --no-interaction -# 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" -# 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 + 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" + 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@v2 -# with: -# submodules: recursive + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive -# - name: Run tests -# env: -# CC: clang -# CXX: clang++ -# run: | -# phpize -# ./configure -# make -# ./dev-scripts/run_tests.sh + - 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 + # 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: cmb69/setup-php-sdk@v0.6 -# with: -# version: '8.0' -# arch: ${{ matrix.arch }} -# ts: ts -# deps: openssl -# - 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-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: cmb69/setup-php-sdk@v0.6 + with: + version: '8.0' + arch: ${{ matrix.arch }} + ts: ts + deps: openssl + - 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 + # 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: [10.15] -# 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 + macos: + runs-on: macos-${{ matrix.version }} + strategy: + matrix: + version: [10.15] + 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' + 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@v2 -# with: -# submodules: recursive + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive -# - name: Test PECL package build -# run: | -# python3 dev-scripts/prepare_pecl_release.py --name aws-crt --user aws-crt --version 1.0.0 -# tar -zxf *.tgz -# cd awscrt-1.0.0 -# phpize -# ./configure -# make + - name: Test PECL package build + run: | + python3 dev-scripts/prepare_pecl_release.py --name aws-crt --user aws-crt --version 1.0.0 + tar -zxf *.tgz + cd awscrt-1.0.0 + phpize + ./configure + make