cd-docs #333
This file contains 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: cd-docs | |
on: | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-20.04-16-core | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies (Linux) | |
run: sudo apt-get update && sudo apt-get install -y build-essential curl wget libssl-dev libudev-dev squashfs-tools protobuf-compiler git python3 && sudo apt-get update --fix-missing | |
- name: Install pip3 | |
run: sudo apt install -y python3-pip | |
- name: Install Python3 modules | |
run: sudo pip3 install pandas tabulate | |
- name: Install rsync | |
run: sudo apt-get install rsync | |
- uses: rlespinasse/[email protected] | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install Rust stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- name: Build all binaries | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --workspace --release | |
- name: Install mdbook and plugins | |
run: cd documentation && ./install_mdbook_deps.sh | |
- name: Remove existing Nym config directory (`~/.nym/`) | |
run: cd documentation && ./remove_existing_config.sh | |
continue-on-error: false | |
# This is the original flow | |
# - name: Build all projects in documentation/ & move to ~/dist/docs/ | |
# run: cd documentation && ./build_all_to_dist.sh | |
# This is a workaround replacement which builds on the last working commit b332a6b55668f60988e36961f3f62a794ba82ddb and then on current branch | |
- name: Save current branch to ~/current_branch | |
run: git rev-parse --abbrev-ref HEAD > ~/current_branch | |
- name: Git pull, reset & switch to b332a6b55668f60988e36961f3f62a794ba82ddb | |
run: git pull && git reset --hard && git checkout b332a6b55668f60988e36961f3f62a794ba82ddb | |
- name: Build all projects in documentation/ & move to ~/dist/docs/ from b332a6b55668f60988e36961f3f62a794ba82ddb | |
run: cd documentation && ./build_all_to_dist.sh | |
- name: Switch to current branch | |
run: git checkout $echo "$(cat ~/current_branch)" | |
- name: Build all projects in documentation/ & move to ~/dist/docs/ on current branch | |
run: cd documentation && ./build_all_to_dist.sh && rm ~/current_branch | |
# End of replacemet | |
- name: Post process | |
run: cd documentation && ./post_process.sh | |
continue-on-error: false | |
- name: Create Vercel project file | |
uses: mobiledevops/secret-to-file-action@v1 | |
with: | |
base64-encoded-secret: ${{ secrets.VERCEL_PROJECT_JSON_BASE64 }} | |
filename: "project.json" | |
is-executable: true | |
working-directory: "./dist/docs/.vercel" | |
- name: Install Vercel CLI | |
run: npm install --global vercel@latest | |
continue-on-error: false | |
- name: Pull Vercel Environment Information (preview) | |
if: github.ref != 'refs/heads/master' | |
run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
- name: Pull Vercel Environment Information (production) | |
if: github.ref == 'refs/heads/master' | |
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
continue-on-error: false | |
- name: Build Project Artifacts (preview) | |
if: github.ref != 'refs/heads/master' | |
run: vercel build --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
continue-on-error: false | |
- name: Build Project Artifacts (production) | |
if: github.ref == 'refs/heads/master' | |
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
continue-on-error: false | |
- name: Deploy Project Artifacts to Vercel (preview) | |
if: github.ref != 'refs/heads/master' | |
run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
- name: Deploy Project Artifacts to Vercel (master) | |
if: github.ref == 'refs/heads/master' | |
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} | |
working-directory: dist/docs | |
continue-on-error: false | |
- name: Matrix - Node Install | |
run: npm install | |
working-directory: .github/workflows/support-files | |
- name: Matrix - Send Notification | |
env: | |
NYM_NOTIFICATION_KIND: cd-docs | |
NYM_PROJECT_NAME: "Docs CD" | |
NYM_CI_WWW_BASE: "${{ secrets.NYM_CD_WWW_BASE }}" | |
NYM_CI_WWW_LOCATION: "${{ env.GITHUB_REF_SLUG }}" | |
GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" | |
GIT_BRANCH: "${GITHUB_REF##*/}" | |
MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" | |
MATRIX_ROOM: "${{ secrets.MATRIX_ROOM_DOCS }}" | |
MATRIX_USER_ID: "${{ secrets.MATRIX_USER_ID }}" | |
MATRIX_TOKEN: "${{ secrets.MATRIX_TOKEN }}" | |
MATRIX_DEVICE_ID: "${{ secrets.MATRIX_DEVICE_ID }}" | |
IS_SUCCESS: "${{ job.status == 'success' }}" | |
uses: docker://keybaseio/client:stable-node | |
with: | |
args: .github/workflows/support-files/notifications/entry_point.sh |