name: Jan Docs on: push: branches: - main - dev - docs paths: - 'docs/**' - '.github/workflows/jan-docs.yml' pull_request: branches: - main - dev - docs paths: - 'docs/**' - '.github/workflows/jan-docs.yml' # Review gh actions docs if you want to further define triggers, paths, etc # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on jobs: deploy: name: Deploy to GitHub Pages env: CLOUDFLARE_PROJECT_NAME: jan runs-on: ubuntu-latest permissions: contents: write deployments: write pull-requests: write steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 - name: Install jq uses: dcarbone/install-jq-action@v2.0.1 - name: Fill env vars run: | env_example_file=".env.example" touch .env while IFS= read -r line || [[ -n "$line" ]]; do if [[ "$line" == *"="* ]]; then var_name=$(echo $line | cut -d '=' -f 1) echo $var_name var_value="$(jq -r --arg key "$var_name" '.[$key]' <<< "$SECRETS")" echo "$var_name=$var_value" >> .env fi done < "$env_example_file" working-directory: docs env: SECRETS: '${{ toJson(secrets) }}' - name: Install dependencies run: yarn install working-directory: docs - name: Build website run: sed -i '/process.env.DEBUG = namespaces;/c\// process.env.DEBUG = namespaces;' ./node_modules/debug/src/node.js && yarn build working-directory: docs - name: Publish to Cloudflare Pages PR Preview and Staging if: github.event_name == 'push' && github.ref == 'refs/heads/dev' uses: cloudflare/pages-action@v1 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} projectName: ${{ env.CLOUDFLARE_PROJECT_NAME }} directory: ./docs/build branch: main # Optional: Enable this if you want to have GitHub Deployments triggered gitHubToken: ${{ secrets.GITHUB_TOKEN }} - name: Publish to Cloudflare Pages PR Preview and Staging if: github.event_name == 'pull_request' uses: cloudflare/pages-action@v1 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} projectName: ${{ env.CLOUDFLARE_PROJECT_NAME }} directory: ./docs/build # Optional: Enable this if you want to have GitHub Deployments triggered gitHubToken: ${{ secrets.GITHUB_TOKEN }} id: deployCloudflarePages - uses: mshick/add-pr-comment@v2 if: github.event_name == 'pull_request' with: message: | Preview URL: ${{ steps.deployCloudflarePages.outputs.url }} - name: Add Custome Domain file if: github.event_name == 'push' && github.ref == 'refs/heads/docs' && github.event.pull_request.head.repo.full_name != github.repository run: echo "${{ vars.DOCUSAURUS_DOMAIN }}" > ./docs/build/CNAME # Popular action to deploy to GitHub Pages: # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus - name: Deploy to GitHub Pages if: github.event_name == 'push' && github.ref == 'refs/heads/docs' && github.event.pull_request.head.repo.full_name != github.repository uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} # Build output to publish to the `gh-pages` branch: publish_dir: ./docs/build # The following lines assign commit authorship to the official # GH-Actions bot for deploys to `gh-pages` branch: # https://github.com/actions/checkout/issues/13#issuecomment-724415212 # The GH actions bot is used by default if you didn't specify the two fields. # You can swap them out with your own user credentials. user_name: github-actions[bot] user_email: 41898282+github-actions[bot]@users.noreply.github.com