defaults: run: shell: bash env: TZ: Asia/Shanghai on: push: jobs: surge: runs-on: ubuntu-latest outputs: url: ${{ steps.surge_deploy.outputs.url }} steps: - name: ⚙️ 设置 Node 环境 uses: yanhao98/composite-actions/setup-node-environment@7797ee90d26ae6e347ccf0301c49f0c116c45a3b - name: 🔨 构建项目 run: pnpm run build-only env: VITE_BUILD_COMMIT: ${{ github.sha }} - name: 🚀 部署到 Surge id: surge_deploy if: ${{ github.actor != 'nektos/act' }} # https://nektosact.com/usage/index.html#skipping-steps uses: yanhao98/composite-actions/deploy-dist-to-surge@7797ee90d26ae6e347ccf0301c49f0c116c45a3b playwright: needs: surge runs-on: ubuntu-latest # container: yanhao98/runner-images:pnpm-with-playwright steps: - name: ⚙️ 设置 Node 环境 uses: yanhao98/composite-actions/setup-node-environment@7797ee90d26ae6e347ccf0301c49f0c116c45a3b # - name: 📥 安装 Playwright 浏览器 # run: pnpm exec playwright install --with-deps # - name: ▶️ 运行 Playwright 测试 # run: npx playwright test # env: # BASE_URL: ${{ needs.surge.outputs.url }} # https://mcr.microsoft.com/en-us/artifact/mar/playwright/ - name: ▶️ 运行 Playwright 测试 run: | docker run --rm --ipc=host \ -e CI=true \ -e BASE_URL=${{ needs.surge.outputs.url }} \ -v ${{ github.workspace }}:/workdir \ --workdir /workdir \ mcr.microsoft.com/playwright:v1.51.1-noble npx --no-install playwright test - name: 🧹 清理 Surge 部署 run: npx surge teardown ${{ needs.surge.outputs.url }} --token ${{ env.SURGE_TOKEN}} env: SURGE_TOKEN: d843de16b331c626f10771245c56ed93