name: Run Standards & Tests on: push: branches: [dev, production] tags: - '*.*.*' pull_request: branches: [dev] jobs: tests: runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: php: [ 8.0, 8.1 ] os: [ ubuntu-20.04 ] wordpress: [ 6.1.1, latest ] include: - experimental: true - experimental: false php: 8.0 wordpress: 6.1.1 name: Test - PHP ${{ matrix.php }} - WP ${{ matrix.wordpress }} env: WP_VERSION: ${{ matrix.wordpress }} WP_MULTISITE: 1 steps: - name: Checkout code uses: actions/checkout@v3 - name: Start required services run: sudo systemctl start mysql.service - name: Cache PHP dependencies uses: actions/cache@v3 with: path: vendor key: php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.lock') }} - name: Setup PHP with Composer 2 uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} tools: phpcs, composer coverage: pcov - name: Install PHP dependencies run: | export PATH="$HOME/.composer/vendor/bin:$PATH" composer install --no-interaction - name: Run PHP CodeSniffer run: composer standards - name: Install WP tests run: bash bin/install-wp-tests.sh wordpress_test root root localhost ${{ matrix.wordpress }} - name: Run PHP Tests run: composer test if: matrix.experimental == true - name: Run PHP Tests and PCOV run: composer test-coverage if: matrix.experimental == false - name: Upload Coverage to Codecov uses: codecov/codecov-action@v3 if: matrix.experimental == false - name: Prepare Build if: startsWith(github.ref, 'refs/tags/') run: | export GITHUB_BUILD_PATH=${{github.workspace}} export GITHUB_REPO_SLUG="$(basename ${{github.workspace}})" export GITHUB_TAG="$(basename ${{github.ref}})" echo "File to be created : $GITHUB_BUILD_PATH/$GITHUB_REPO_SLUG-$GITHUB_TAG.zip" curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar mv wp-cli.phar /usr/local/bin/wp wp package install wp-cli/dist-archive-command npm ci npm run build composer install --no-dev --optimize-autoloader cd .. wp dist-archive $GITHUB_REPO_SLUG $GITHUB_BUILD_PATH/$GITHUB_REPO_SLUG-$GITHUB_TAG.zip cd $GITHUB_BUILD_PATH ls $GITHUB_BUILD_PATH - name: Deploy if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: files: ${{github.workspace}}/*.zip - name: Trigger Bedrock Update if: github.ref == 'refs/heads/dev' && matrix.experimental == false uses: pressbooks/composer-autoupdate-bedrock@v1 with: triggered-by: ${{ github.repository }} token: ${{ secrets.PAT_COMPOSER_UPDATE }}