name: docs on: push: branches: - master - v[0-9]+.[0-9]+ tags: - v[0-9]+.[0-9]+.[0-9]+ pull_request: branches: - master - v[0-9]+.[0-9]+ jobs: check: outputs: continue: ${{ steps.check.outputs.need_to_build }} runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get commit range (push) if: ${{ github.event_name == 'push' }} run: | echo "COMMIT_RANGE=${{ github.event.before }}..$GITHUB_SHA" >> $GITHUB_ENV - name: Get commit range (pull_request) if: ${{ github.event_name == 'pull_request' }} run: | echo "COMMIT_RANGE=${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV - name: Get file status run: | set +e git diff --name-only $COMMIT_RANGE | grep \ -e '.github/workflows/docs.yml' \ -e 'docs/**' echo "FILE_CHANGED=$?" >> $GITHUB_ENV - name: Check id: check shell: bash run: | source ci/env.sh eval "$(ci/channel-info.sh)" TAG=$CI_TAG echo "TAG: $TAG" echo "CHANNEL: $CHANNEL" echo "FILE_CHANGED: $FILE_CHANGED" echo need_to_build="$( if [ "$TAG" != '' ] then echo 1 elif [ $FILE_CHANGED = 0 ] && ( [ "$CHANNEL" = "beta" ] || [ "$CHANNEL" = "edge" ] ) then echo 1 else echo 0 fi )" >> $GITHUB_OUTPUT build_and_deploy: needs: - check if: ${{ needs.check.outputs.continue == 1 }} # the name is used by .mergify.yml as well name: build & deploy docs runs-on: ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 16 - name: Build working-directory: docs run: | npm install ./build.sh env: VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} error_reporting: needs: - check - build_and_deploy if: failure() && github.event_name == 'push' uses: ./.github/workflows/error-reporting.yml secrets: WEBHOOK: ${{ secrets.SLACK_ERROR_REPORTING_WEBHOOK }}