Skip to content

build and deploy docs #212

build and deploy docs

build and deploy docs #212

Workflow file for this run

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