name: CI on: push: branches: [main] pull_request: permissions: contents: read # No `concurrency:` block here, and that is not an oversight. Measured on Gitea # 1.27.2, adding one produces no run at all — not a failed run, not a cancelled # one: nothing to click on, which looks exactly like a runner that has not # picked the job up, so you wait, and waiting never fixes it. # # This file is kept byte-identical in .github/workflows and .gitea/workflows. # ci/workflows-in-sync.sh fails if the two drift apart, because a workflow that # lives only in .github/ does not run on Gitea at all. jobs: static: name: Static checks runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Workflows in sync run: ci/workflows-in-sync.sh - name: Lint, hygiene, versions and compatibility headers run: ci/static.sh - name: The release zip is buildable and complete run: ci/build-zip.sh site: name: WordPress ${{ matrix.wp }} + WooCommerce ${{ matrix.wc }} on PHP ${{ matrix.php }} runs-on: ubuntu-latest # One cell per push: what a shop that keeps up to date is running today. # The wider matrix — the oldest PHP the header promises, the next # WordPress, the next WooCommerce — runs weekly in compat.yml, so a single # self-hosted runner is not asked to do all of it on every commit. strategy: fail-fast: false matrix: include: - { wp: latest, wc: latest, php: '8.3' } steps: - uses: actions/checkout@v4 - name: Install into a throwaway shop and run the tests env: WP_VERSION: ${{ matrix.wp }} WC_VERSION: ${{ matrix.wc }} PHP_VERSION: ${{ matrix.php }} run: ci/site-test.sh