feat: add ModelScope provider, rich metadata & comprehensive infra overhaul #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Z-Image - Preview Deployment | |
| # | |
| # Deploys PR previews to Cloudflare Pages | |
| # Comments preview URL on the PR | |
| name: Preview | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| concurrency: | |
| group: preview-${{ github.head_ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| preview: | |
| name: Deploy Preview | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.draft == false | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| deployments: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build shared package | |
| run: pnpm build:shared | |
| - name: Build web | |
| run: pnpm build:web | |
| - name: Deploy Preview to Cloudflare Pages | |
| id: deploy | |
| uses: cloudflare/wrangler-action@v3 | |
| with: | |
| apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
| accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
| command: pages deploy apps/web/dist --project-name=z-image --branch=${{ github.head_ref }} | |
| - name: Comment Preview URL | |
| uses: actions/github-script@v7 | |
| env: | |
| DEPLOY_URL: ${{ steps.deploy.outputs.deployment-url }} | |
| COMMIT_SHA: ${{ github.sha }} | |
| with: | |
| script: | | |
| const { data: comments } = await github.rest.issues.listComments({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| }); | |
| const botComment = comments.find(comment => | |
| comment.user.type === 'Bot' && | |
| comment.body.includes('Preview Deployment') | |
| ); | |
| const shortSha = process.env.COMMIT_SHA.substring(0, 7); | |
| const deployUrl = process.env.DEPLOY_URL; | |
| const output = `## 🚀 Preview Deployment | |
| | Status | URL | | |
| |--------|-----| | |
| | ✅ Ready | ${deployUrl} | | |
| > Commit: \`${shortSha}\` | |
| `; | |
| if (botComment) { | |
| await github.rest.issues.updateComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| comment_id: botComment.id, | |
| body: output | |
| }); | |
| } else { | |
| await github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| body: output | |
| }); | |
| } |