name: Test recent on: schedule: - cron: "0 12 * * *" repository_dispatch: types: - test-recent-extensions workflow_dispatch: jobs: determine_extension_list: name: Determine extension list runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Retrieve recently updated extensions run: ./scripts/ci-retrieve-recent-extensions >extensions-updated.txt - name: Filter supported extensions run: | UPDATED_EXTENSIONS="$(cat extensions-updated.txt)" if test -z "$UPDATED_EXTENSIONS"; then EXTENSIONS_TO_TEST='' else EXTENSIONS_TO_TEST="$(./scripts/ci-filter-supported-extensions "$UPDATED_EXTENSIONS")" fi printf "$EXTENSIONS_TO_TEST" > extensions-to-test.txt - name: Persist list of extensions to be tested uses: actions/upload-artifact@v4 with: name: artifact path: extensions-to-test.txt if-no-files-found: error retention-days: 1 test_extensions: runs-on: ubuntu-latest needs: determine_extension_list strategy: fail-fast: false matrix: distro: - alpine3.9 - alpine3.10 - alpine3.11 - alpine3.12 - alpine3.13 - alpine3.14 - alpine3.15 - alpine3.16 - alpine3.17 - alpine3.18 - alpine3.19 - alpine3.20 - jessie - stretch - buster - bullseye - bookworm name: Check on ${{ matrix.distro }} env: IPETEST_DOCKER_DISTRO: ${{ matrix.distro }} steps: - name: Checkout uses: actions/checkout@v4 - name: Loading list of extensions to be tested uses: actions/download-artifact@v4 with: name: artifact - name: Test extensions run: | EXTENSIONS_TO_TEST="$(cat extensions-to-test.txt)" if test -z "$EXTENSIONS_TO_TEST"; then echo 'No extensions to be tested' else ./scripts/ci-test-extensions from-list "$EXTENSIONS_TO_TEST" fi - name: Notify failures if: failure() uses: appleboy/telegram-action@master with: token: ${{ secrets.TELEGRAM_TOKEN }} to: ${{ secrets.TELEGRAM_TO }} message: Testing recent PHP packages failed on https://github.com/mlocati/docker-php-extension-installer