name: Test Patches on: workflow_dispatch: inputs: discord_branch: type: choice description: "Discord Branch to test patches on" options: - both - stable - canary default: both webhook_url: type: string description: "Webhook URL that the report will be posted to. This will be visible for everyone, so DO NOT pass sensitive webhooks like discord webhook. This is meant to be used by Equibot." required: false repository: type: string description: repository to test patches on required: false ref: type: string description: "Git reference to test patches on. This can be a branch, tag, or commit SHA." required: false schedule: # # Every day at midnight - cron: 0 0 * * * env: FORCE_COLOR: true jobs: TestPlugins: name: Test Patches runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 with: repository: ${{ inputs.pr_repo || github.repository }} ref: ${{ inputs.ref || (github.event_name == 'schedule' && 'dev' || github.ref) }} - name: Setup PNPM uses: pnpm/setup@v2.1.0 with: runtime: node@v24 require-lockfile: true - name: Install dependencies run: | pnpm install --frozen-lockfile --prefer-offline - name: Build Equicord Reporter Version run: pnpm buildReporter - name: Run Reporter timeout-minutes: 10 run: | export PATH="$PWD/node_modules/.bin:$PATH" export CHROMIUM_BIN=/usr/bin/google-chrome esbuild scripts/generateReport.ts > dist/report.mjs stable_output_file=$(mktemp) canary_output_file=$(mktemp) pids="" branch="${{ inputs.discord_branch }}" if [[ "${{ github.event_name }}" = "schedule" ]]; then branch="both" fi if [[ "$branch" = "both" || "$branch" = "stable" ]]; then node dist/report.mjs > "$stable_output_file" & pids+=" $!" fi if [[ "$branch" = "both" || "$branch" = "canary" ]]; then USE_CANARY=true node dist/report.mjs > "$canary_output_file" & pids+=" $!" fi exit_code=0 for pid in $pids; do if ! wait "$pid"; then exit_code=1 fi done cat "$stable_output_file" "$canary_output_file" >> $GITHUB_STEP_SUMMARY exit $exit_code env: WEBHOOK_URL: ${{ inputs.webhook_url || secrets.WEBHOOK_URL }} WEBHOOK_SECRET: ${{ secrets.WEBHOOK_SECRET }}