# 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@v2 # with: # submodules: recursive # - 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 # 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: 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: 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 # 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' # - 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