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/github-slug-action@v3.x - 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