docker-php-extension-installer/.github/workflows/test-extensions.yml

165 lines
4.9 KiB
YAML
Raw Normal View History

2020-02-02 16:17:49 +01:00
name: Test extensions
on:
- pull_request
jobs:
check_syntax_data:
name: Check data syntax
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Check order supported extensions list
run: |
sort -o data/supported-extensions.sorted data/supported-extensions
if ! DIFF="$(diff -u data/supported-extensions data/supported-extensions.sorted)"; then
printf 'The order of extensions in data/supported-extensions is wrong.\nThe list of required changes is:\n\n%s\n' "$DIFF" >&2
exit 1
fi
rm data/supported-extensions.sorted
sort -o data/special-requirements.sorted data/special-requirements
if ! DIFF="$(diff -u data/special-requirements data/special-requirements.sorted)"; then
printf 'The order of extensions in data/special-requirements is wrong.\nThe list of required changes is:\n\n%s\n' "$DIFF" >&2
exit 1
fi
rm data/special-requirements.sorted
2020-02-02 16:17:49 +01:00
check_syntax_shell:
name: Check shell coding style
runs-on: ubuntu-latest
steps:
- name: Install Go
2021-10-07 15:34:51 +02:00
uses: actions/setup-go@v2
2020-02-02 16:17:49 +01:00
with:
2021-10-07 15:34:51 +02:00
go-version: "1.17.1"
2020-02-02 16:17:49 +01:00
- name: Install shfmt
2021-10-07 15:34:51 +02:00
run: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt@v3.4.0
2020-02-02 16:17:49 +01:00
- name: Checkout
uses: actions/checkout@v2
2020-02-02 16:17:49 +01:00
- name: Check coding style
2021-10-07 15:34:51 +02:00
run: ./scripts/invoke-shfmt check
2020-02-02 16:17:49 +01:00
check_syntax_php:
name: Check PHP coding style
runs-on: ubuntu-latest
steps:
- name: Install PHP
2020-11-10 17:03:30 +01:00
uses: shivammathur/setup-php@v2
2020-02-02 16:17:49 +01:00
with:
php-version: "7.4"
tools: composer
- name: Checkout
uses: actions/checkout@v2
2020-02-02 16:17:49 +01:00
- name: Install Composer dependencies
run: composer install --no-progress --classmap-authoritative
2020-02-02 16:17:49 +01:00
- name: Check coding style
run: composer run-script lint -- --dry-run --diff
test_extensions:
needs:
- check_syntax_data
2020-02-02 16:17:49 +01:00
- check_syntax_shell
- check_syntax_php
strategy:
2021-02-23 18:25:07 +01:00
fail-fast: true
2020-02-02 16:17:49 +01:00
matrix:
distro:
- alpine3.7
- alpine3.8
- alpine3.9
- alpine3.10
2020-02-15 21:35:52 +01:00
- alpine3.11
- alpine3.12
2021-01-26 08:37:36 +01:00
- alpine3.13
2021-06-19 12:25:26 +02:00
- alpine3.14
2021-12-05 16:49:11 +01:00
- alpine3.15
2020-02-02 16:17:49 +01:00
- jessie
- stretch
- buster
2021-08-24 16:02:49 +02:00
- bullseye
2020-02-02 16:17:49 +01:00
name: Check on ${{ matrix.distro }}
runs-on: ubuntu-latest
env:
IPETEST_DOCKER_DISTRO: ${{ matrix.distro }}
2020-02-02 16:17:49 +01:00
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
2020-02-02 16:17:49 +01:00
- name: Test extensions
2020-02-21 13:10:49 +01:00
run: ./scripts/ci-test-extensions from-commits "${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
2020-02-02 16:17:49 +01:00
test_restoring_packages:
name: Test restoring packages
needs:
- check_syntax_data
2020-02-02 16:17:49 +01:00
- check_syntax_shell
- check_syntax_php
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
2020-02-02 16:17:49 +01:00
- run: docker run --rm --volume "$(pwd):/app" --workdir /app php:7.3-stretch ./scripts/test-restore-apt
test_custom_version:
name: Test installing specific versions
needs:
- check_syntax_data
- check_syntax_shell
- check_syntax_php
runs-on: ubuntu-latest
strategy:
matrix:
xdebug_version:
- ''
- 2.9.8
- 3.0.0
- ^2
- ^2.8
steps:
- name: Checkout
uses: actions/checkout@v2
- run: docker run --rm --volume "$(pwd):/app" --workdir /app php:7.4-alpine ./scripts/test-installversion "${{ matrix.xdebug_version }}"
2020-12-16 11:34:30 +01:00
test_composer:
name: Test installing composer
needs:
- check_syntax_data
- check_syntax_shell
- check_syntax_php
runs-on: ubuntu-latest
strategy:
matrix:
composer_version:
- ''
- '1'
- '2.0.1'
steps:
- name: Checkout
uses: actions/checkout@v2
- run: |
docker run --rm --volume "$(pwd):/app" --workdir /app php:7.4-alpine ./scripts/test-installcomposer "${{ matrix.composer_version }}"
test_marking_packages:
name: Test marking pre-installed packages
needs:
- check_syntax_data
- check_syntax_shell
- check_syntax_php
runs-on: ubuntu-latest
strategy:
matrix:
distro:
- alpine
- buster
steps:
- name: Checkout
uses: actions/checkout@v2
- run: docker run --rm --volume "$(pwd):/app" --workdir /app "php:7.4-${{ matrix.distro }}" "./scripts/ci-markused-${{ matrix.distro }}"
test_instantclient_basic:
name: Test using Oracle Instant Client Basic
needs:
- check_syntax_data
- check_syntax_shell
- check_syntax_php
runs-on: ubuntu-latest
container: php:8.1-cli-alpine
steps:
- name: Checkout
uses: actions/checkout@v3
- run: IPE_INSTANTCLIENT_BASIC=1 ./install-php-extensions oci8 pdo_oci