name: Test on: push: branches: - main pull_request: jobs: unit-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - run: | npm i -g corepack@latest corepack enable pnpm - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: .node-version cache: pnpm - run: pnpm i - run: pnpm typecheck - run: pnpm lint - run: pnpm test -- --coverage e2e-test: runs-on: ubuntu-latest permissions: pull-requests: write steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - run: | npm i -g corepack@latest corepack enable pnpm - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: .node-version cache: pnpm - run: | ATPROTO_COMMIT=$(cat .atproto-version) echo "ATPROTO_COMMIT=$ATPROTO_COMMIT" >> $GITHUB_ENV NODE_VERSION=$(node -v) echo "NODE_VERSION=$NODE_VERSION" >> $GITHUB_ENV - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5 with: path: ~/.cache/atproto/${{ env.ATPROTO_COMMIT }} key: atproto-${{ env.ATPROTO_COMMIT }}-node-${{ env.NODE_VERSION }} - run: pnpm i - run: pnpm playwright install --with-deps - run: cp .env.example .env - run: pnpm setup-dev - run: pnpm build - run: pnpm e2e # https://www.cloudflarestatus.com/incidents/t5nrjmpxc1cj - uses: unfor19/install-aws-cli-action@f5b46b7f32cf5e7ebd652656c5036bf83dd1e60c # v1 if: always() && (github.ref == 'refs/heads/main' || github.actor == 'mkizka') with: version: 2.22.35 - name: Upload Report if: always() && (github.ref == 'refs/heads/main' || github.actor == 'mkizka') run: | E2E_S3_PATH="playwright-report/${{ github.ref == 'refs/heads/main' && 'main' || github.sha }}" aws s3 cp playwright-report "s3://$E2E_S3_PATH" --recursive echo "E2E_REPORT_URL=${{ vars.S3_BASE_URL }}/$E2E_S3_PATH/index.html" >> $GITHUB_ENV env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_ENDPOINT_URL: ${{ secrets.AWS_ENDPOINT_URL }} AWS_DEFAULT_REGION: auto - name: Comment on PR if: always() && github.ref != 'refs/heads/main' && github.actor == 'mkizka' run: | BODY="## E2E Test Report 📊 [View Report]($E2E_REPORT_URL)" gh pr comment ${{ github.event.number }} --body "$BODY" --edit-last --create-if-none env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}