name: Metrics Tracking on: pull_request: push: branches: [trunk] concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true permissions: {} jobs: metrics: name: Run metrics tests runs-on: ubuntu-20.04 permissions: contents: read env: WP_ARTIFACTS_PATH: ${{ github.workspace }}/artifacts steps: - uses: actions/checkout@v3 - name: Setup WooCommerce Monorepo uses: ./.github/actions/setup-woocommerce-monorepo with: install: '@woocommerce/plugin-woocommerce...' build: '@woocommerce/plugin-woocommerce' - name: Compare performance with trunk if: github.event_name == 'pull_request' run: cd tools/compare-perf && pnpm run test perf $GITHUB_SHA trunk --tests-branch $GITHUB_SHA - name: Compare performance with base branch if: github.event_name == 'push' # The base hash used here need to be a commit that is compatible with the current WP version # The current one is 2f6ca66e00b3666b2567877ae67cbfb5b6ce171a # it needs to be updated every time it becomes unsupported by the current wp-env (WP version). # It is used as a base comparison point to avoid fluctuation in the performance metrics. run: | WP_VERSION=$(awk -F ': ' '/^Tested up to/{print $2}' readme.txt) IFS=. read -ra WP_VERSION_ARRAY <<< "$WP_VERSION" WP_MAJOR="${WP_VERSION_ARRAY[0]}.${WP_VERSION_ARRAY[1]}" cd tools/compare-perf && pnpm run test perf $GITHUB_SHA 2f6ca66e00b3666b2567877ae67cbfb5b6ce171a --tests-branch $GITHUB_SHA --wp-version "$WP_MAJOR" - name: Archive performance results if: success() uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: performance-results path: ${{ env.WP_ARTIFACTS_PATH }}/*.performance-results*.json