-
Notifications
You must be signed in to change notification settings - Fork 1
114 lines (99 loc) · 3.76 KB
/
publish.yml
File metadata and controls
114 lines (99 loc) · 3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: docusaurus-build-site
path: unified-doc/build-site/
retention-days: 7
# 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