build and deploy docs #212
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build and deploy docs | |
| concurrency: | |
| group: publish-docs | |
| cancel-in-progress: true | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| description: "Branch to build" | |
| required: true | |
| default: "main" | |
| push: | |
| branches: | |
| - main | |
| - '*-stg' | |
| paths-ignore: | |
| - '.github/**' | |
| schedule: | |
| - cron: '0 2 * * *' # run at 2 AM UTC to keep companion microsites updated e.g. swift SDK docs | |
| jobs: | |
| publish-docs-from-container: | |
| name: Publish NF Docs | |
| if: github.repository_owner == 'netfoundry' && contains(github.event.head_commit.message, 'ci skip') == false | |
| runs-on: ubuntu-latest | |
| env: | |
| DOCUSAURUS_PUBLISH_ENV: 'prod' | |
| GIT_BRANCH: ${{ github.event.inputs.branch || github.ref_name }} | |
| gh_ci_key: ${{ secrets.GH_CI_KEY }} | |
| ziti_ci_gpg_key: ${{ secrets.ZITI_CI_GPG_KEY }} | |
| ziti_ci_gpg_key_id: ${{ secrets.ZITI_CI_GPG_KEY_ID }} | |
| # these are defined in github secrets: repo/settings/secrets/actions | |
| STG_DOC_SSH_HOST: ${{ secrets.STG_DOC_SSH_HOST }} | |
| STG_DOC_SSH_PORT: ${{ secrets.STG_DOC_SSH_PORT }} | |
| STG_DOC_SSH_TARGET_DIR: ${{ secrets.STG_DOC_SSH_TARGET_DIR }} | |
| STG_DOC_SSH_USER: ${{ secrets.STG_DOC_SSH_USER }} | |
| STG_KEY_FILE: ${{ secrets.STG_KEY_FILE }} | |
| PROD_DOC_SSH_HOST: ${{ secrets.PROD_DOC_SSH_HOST }} | |
| PROD_DOC_SSH_PORT: ${{ secrets.PROD_DOC_SSH_PORT }} | |
| PROD_DOC_SSH_TARGET_DIR: ${{ secrets.PROD_DOC_SSH_TARGET_DIR }} | |
| PROD_DOC_SSH_USER: ${{ secrets.PROD_DOC_SSH_USER }} | |
| PROD_KEY_FILE: ${{ secrets.PROD_KEY_FILE }} | |
| # these are defined in a github environment: repo/settings/environments | |
| ZITI_HOTJAR_APPID: ${{ secrets.ZITI_HOTJAR_APPID }} | |
| environment: ${{ github.event.inputs.environment || (github.ref_name == 'main' && 'main' || 'stg') }} | |
| steps: | |
| - name: Checkout Workspace | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y doxygen wget curl jq | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: 'npm' | |
| cache-dependency-path: unified-doc/yarn.lock | |
| - name: Install csvtojson | |
| run: npm install -g csvtojson | |
| - name: Setup SSH | |
| run: | | |
| mkdir -p $HOME/.ssh | |
| echo "${ZITI_CI_GH_KEY}" | base64 -d > $HOME/.ssh/id_ed25519_gh | |
| echo "${JENKINS_CI_BB_KEY}" | base64 -d > $HOME/.ssh/id_ed25519_bb | |
| chmod 600 $HOME/.ssh/id_ed25519_* | |
| ssh-keyscan github.com >> $HOME/.ssh/known_hosts | |
| ssh-keyscan bitbucket.org >> $HOME/.ssh/known_hosts | |
| cat >> $HOME/.ssh/config <<'EOF' | |
| Host github.com | |
| IdentityFile ~/.ssh/id_ed25519_gh | |
| IdentitiesOnly yes | |
| StrictHostKeyChecking accept-new | |
| Host bitbucket.org | |
| IdentityFile ~/.ssh/id_ed25519_bb | |
| IdentitiesOnly yes | |
| StrictHostKeyChecking accept-new | |
| EOF | |
| env: | |
| ZITI_CI_GH_KEY: ${{ secrets.ZITI_CI_GH_KEY }} | |
| JENKINS_CI_BB_KEY: ${{ secrets.JENKINS_CI_BB_KEY }} | |
| - name: Build & Publish Docusaurus Site | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| ZITI_HOTJAR_APPID: ${{ secrets.PROD_DOC_HOTJAR_APPID }} | |
| DEPLOY_ENV: 'kinsta' | |
| DOCUSAURUS_URL: 'https://netfoundry.io' | |
| run: unified-doc/publish-unified-doc.sh -ds | |
| # check-links: | |
| # if: github.ref_name == 'main' | |
| # needs: publish-docs-from-container | |
| # name: Check for Broken Links | |
| # uses: ./.github/workflows/check-links.yml | |
| # secrets: inherit |