103 lines
2.5 KiB
YAML
103 lines
2.5 KiB
YAML
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: >
|
|
github.repository == 'solana-labs/solana' &&
|
|
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 }}
|
|
VERCEL_SCOPE: ${{ secrets.VERCEL_SCOPE }}
|
|
|
|
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 }}
|