name: Publish www on: push: branches: - dev paths: - 'apps/www/**' pull_request: branches: - dev paths: - 'apps/www/**' pull_request_target: types: # When a created pull request from forked repo, it will be comment 'Should deploy to add label' - opened # When a labeled '🚀request-deploy' pull request from forked repo, it will be deploy to Cloudflare Pages - labeled # Allows you to run this workflow manually from the Actions tab workflow_dispatch: permissions: # default contents: read & write (in forked repos, only read) contents: write # default deployments: read & write (in forked repos, only read) deployments: write # default pull-requests: read & write (in forked repos, only read) pull-requests: write jobs: publish: runs-on: ubuntu-latest name: Publish to Cloudflare Pages # push event in main branch # workflow_dispatch event # pull_request event from not forked repo # pull_request_target event with label "🚀request-deploy" from forked repo if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || (github.event_name == 'pull_request_target' && github.event.action == 'labeled' && github.event.pull_request.head.repo.fork == true && contains(github.event.label.name, '🚀request-deploy')) }} steps: - name: Checkout uses: actions/checkout@v3 - name: Setup (Install Node & pnpm) uses: ./.github/actions/setup - name: Install dependencies run: pnpm i --frozen-lockfile - name: Build www run: pnpm build # Run a action to publish docs - name: Publish to Cloudflare Pages uses: zernonia/cloudflare-pages-action@v0.0.7 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} projectName: shadcn-vue directory: .vitepress/dist # Optional: Enable this if you want to have GitHub Deployments triggered gitHubToken: ${{ secrets.GITHUB_TOKEN }} # Optional: Switch what branch you are publishing to. # By default this will be the branch which triggered this workflow branch: ${{ github.ref == 'refs/heads/dev' && 'dev' || format('refs/pull/{0}/merge', github.event.number) }} # Optional: Change the working directory workingDirectory: apps/www wranglerVersion: '3' - name: Remove label if: ${{ github.event_name == 'pull_request_target' && contains(github.event.label.name, '🚀request-deploy') }} uses: actions/github-script@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | github.rest.issues.removeLabel({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, name: ['🚀request-deploy'] })