Always validate building docs in CI for PRs (#1423)
## Description We can probably remove the requirement on `Publish-Docs` as we have move the check to `Docs-Linting`. Having this check in `Publish-Docs` does not run for docs only change as the previous steps(Test-Suite) are skipped and as a result this gets skipped. ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [x] 💻 CI/Deployment - [ ] 🐹 Trivial/Minor ## Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * #<issue> ## Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
09261d5474
commit
47e7172e39
106
.github/workflows/ci.yml
vendored
106
.github/workflows/ci.yml
vendored
@ -44,12 +44,43 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version-file: src/go.mod
|
go-version-file: src/go.mod
|
||||||
|
|
||||||
|
SetEnv:
|
||||||
|
environment: Testing
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
environment: ${{ steps.environment.outputs.environment }}
|
||||||
|
version: ${{ steps.version.outputs.version }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Figure out environment
|
||||||
|
id: environment
|
||||||
|
run: |
|
||||||
|
if ${{ startsWith(github.ref, 'refs/tags/') }}; then
|
||||||
|
echo "set-output name=environment::Production"
|
||||||
|
echo "::set-output name=environment::Production"
|
||||||
|
else
|
||||||
|
echo "set-output name=environment::Testing"
|
||||||
|
echo "::set-output name=environment::Testing"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Get version string
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
if ${{ startsWith(github.ref, 'refs/tags/') }}; then
|
||||||
|
echo "set-output name=version::$(git describe --exact-match --tags $(git rev-parse HEAD))"
|
||||||
|
echo "::set-output name=version::$(git describe --exact-match --tags $(git rev-parse HEAD))"
|
||||||
|
else
|
||||||
|
echo "set-output name=version::$(echo unreleased-$(git rev-parse --short HEAD))"
|
||||||
|
echo "::set-output name=version::$(echo unreleased-$(git rev-parse --short HEAD))"
|
||||||
|
fi
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------
|
||||||
# --- Docs Linting -----------------------------------------------------------------------------------
|
# --- Docs Linting -----------------------------------------------------------------------------------
|
||||||
# ----------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Docs-Linting:
|
Docs-Linting:
|
||||||
needs: [Precheck, Checkout]
|
needs: [Precheck, Checkout, SetEnv]
|
||||||
environment: Testing
|
environment: Testing
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.docfileschanged == 'true' # docsfileschanged also includes srcfileschanged
|
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.docfileschanged == 'true' # docsfileschanged also includes srcfileschanged
|
||||||
@ -77,13 +108,6 @@ jobs:
|
|||||||
mv ./src/cmd/mdgen/cli_markdown/* ./docs/docs/cli/
|
mv ./src/cmd/mdgen/cli_markdown/* ./docs/docs/cli/
|
||||||
rm -R ./src/cmd/mdgen/cli_markdown/
|
rm -R ./src/cmd/mdgen/cli_markdown/
|
||||||
|
|
||||||
- uses: actions/upload-artifact@master
|
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.srcfileschanged == 'true'
|
|
||||||
name: Upload cli docs as artifacts
|
|
||||||
with:
|
|
||||||
name: cli-docs
|
|
||||||
path: docs/docs/cli
|
|
||||||
|
|
||||||
- name: Install dependencies for docs lint
|
- name: Install dependencies for docs lint
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/errata-ai/vale/releases/download/v2.20.2/vale_2.20.2_Linux_64-bit.tar.gz # NOTE: update in Dockerfile when updating
|
wget https://github.com/errata-ai/vale/releases/download/v2.20.2/vale_2.20.2_Linux_64-bit.tar.gz # NOTE: update in Dockerfile when updating
|
||||||
@ -97,6 +121,23 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd docs && make -o genclidocs localcheck
|
cd docs && make -o genclidocs localcheck
|
||||||
|
|
||||||
|
- name: Build docs
|
||||||
|
env:
|
||||||
|
CORSO_VERSION: ${{ needs.SetEnv.outputs.version }}
|
||||||
|
run: |
|
||||||
|
cd docs &&
|
||||||
|
npm ci &&
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
- uses: actions/upload-artifact@master
|
||||||
|
# uncomment next line to disable creating docs artifacts on PR runs
|
||||||
|
# if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
||||||
|
name: Upload docs as artifacts
|
||||||
|
with:
|
||||||
|
name: docs
|
||||||
|
path: docs/build
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------
|
||||||
# --- Integration and Unit Testing -------------------------------------------------------------------
|
# --- Integration and Unit Testing -------------------------------------------------------------------
|
||||||
# ----------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------
|
||||||
@ -195,37 +236,6 @@ jobs:
|
|||||||
# --- Publish steps ----------------------------------------------------------------------------------
|
# --- Publish steps ----------------------------------------------------------------------------------
|
||||||
# ----------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
SetEnv:
|
|
||||||
environment: Testing
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
environment: ${{ steps.environment.outputs.environment }}
|
|
||||||
version: ${{ steps.version.outputs.version }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Figure out environment
|
|
||||||
id: environment
|
|
||||||
run: |
|
|
||||||
if ${{ startsWith(github.ref, 'refs/tags/') }}; then
|
|
||||||
echo "set-output name=environment::Production"
|
|
||||||
echo "::set-output name=environment::Production"
|
|
||||||
else
|
|
||||||
echo "set-output name=environment::Testing"
|
|
||||||
echo "::set-output name=environment::Testing"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Get version string
|
|
||||||
id: version
|
|
||||||
run: |
|
|
||||||
if ${{ startsWith(github.ref, 'refs/tags/') }}; then
|
|
||||||
echo "set-output name=version::$(git describe --exact-match --tags $(git rev-parse HEAD))"
|
|
||||||
echo "::set-output name=version::$(git describe --exact-match --tags $(git rev-parse HEAD))"
|
|
||||||
else
|
|
||||||
echo "set-output name=version::$(echo unreleased-$(git rev-parse --short HEAD))"
|
|
||||||
echo "::set-output name=version::$(echo unreleased-$(git rev-parse --short HEAD))"
|
|
||||||
fi
|
|
||||||
|
|
||||||
Publish-Binary:
|
Publish-Binary:
|
||||||
needs: [Test-Suite, Linting, Docs-Linting, SetEnv]
|
needs: [Test-Suite, Linting, Docs-Linting, SetEnv]
|
||||||
environment: ${{ needs.SetEnv.outputs.environment }}
|
environment: ${{ needs.SetEnv.outputs.environment }}
|
||||||
@ -267,7 +277,7 @@ jobs:
|
|||||||
needs: [Test-Suite, Linting, Docs-Linting, SetEnv]
|
needs: [Test-Suite, Linting, Docs-Linting, SetEnv]
|
||||||
environment: ${{ needs.SetEnv.outputs.environment }}
|
environment: ${{ needs.SetEnv.outputs.environment }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || needs.precheck.outputs.docfileschanged == 'true' # docsfileschanged also includes srcfileschanged
|
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: docs
|
working-directory: docs
|
||||||
@ -276,38 +286,28 @@ jobs:
|
|||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- uses: actions/download-artifact@master
|
- uses: actions/download-artifact@master
|
||||||
name: Download cli docs from build step
|
name: Download docs from build step
|
||||||
with:
|
with:
|
||||||
name: cli-docs
|
name: docs
|
||||||
path: docs/docs/cli
|
path: docs/build
|
||||||
|
|
||||||
- name: Configure AWS credentials from Test account
|
- name: Configure AWS credentials from Test account
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
with:
|
with:
|
||||||
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
|
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}
|
||||||
role-session-name: integration-testing
|
role-session-name: integration-testing
|
||||||
aws-region: us-east-1
|
aws-region: us-east-1
|
||||||
|
|
||||||
- name: Build docs
|
|
||||||
env:
|
|
||||||
CORSO_VERSION: ${{ needs.SetEnv.outputs.version }}
|
|
||||||
run: |
|
|
||||||
npm ci
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
- name: Add rotbots.txt
|
- name: Add rotbots.txt
|
||||||
if: github.ref == 'refs/heads/main'
|
if: github.ref == 'refs/heads/main'
|
||||||
run: |
|
run: |
|
||||||
printf 'User-agent: *\nDisallow: /' > build/robots.txt
|
printf 'User-agent: *\nDisallow: /' > build/robots.txt
|
||||||
|
|
||||||
- name: Push docs
|
- name: Push docs
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
|
||||||
run: |
|
run: |
|
||||||
aws s3 sync build "s3://${{ secrets.DOCS_S3_BUCKET }}"
|
aws s3 sync build "s3://${{ secrets.DOCS_S3_BUCKET }}"
|
||||||
|
|
||||||
- name: Invalidate cloudfront
|
- name: Invalidate cloudfront
|
||||||
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
|
||||||
run: |
|
run: |
|
||||||
aws cloudfront create-invalidation --distribution-id ${{ secrets.DOCS_CF_DISTRIBUTION }} --paths "/*"
|
aws cloudfront create-invalidation --distribution-id ${{ secrets.DOCS_CF_DISTRIBUTION }} --paths "/*"
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user