name: cd-docs on: workflow_dispatch: push: branches: master paths: - 'documentation/docs/**' jobs: build: runs-on: custom-linux steps: - uses: actions/checkout@v3 - name: Install rsync run: sudo apt-get install rsync - uses: rlespinasse/github-slug-action@v3.x - uses: actions/setup-node@v3 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 run: (test -x $HOME/.cargo/bin/mdbook || cargo install --vers "^0.4.33" mdbook) - name: Install mdbook plugins run: | cargo install --vers "=0.2.2" mdbook-variables && cargo install \ --vers "^1.8.0" mdbook-admonish && cargo install --vers \ "^0.1.2" mdbook-last-changed && cargo install --vers "^0.1.2" mdbook-theme \ && cargo install --vers "^0.7.7" mdbook-linkcheck - name: Build all projects in documentation/ & move to ~/dist/docs/ run: cd documentation && ./build_all_to_dist.sh continue-on-error: false - name: Deploy branch master to dev continue-on-error: true uses: easingthemes/ssh-deploy@main env: SSH_PRIVATE_KEY: ${{ secrets.CD_WWW_SSH_PRIVATE_KEY }} ARGS: "-rltgoDzvO --delete" SOURCE: "dist/docs/" REMOTE_HOST: ${{ secrets.CD_WWW_REMOTE_HOST_DEV }} REMOTE_USER: ${{ secrets.CD_WWW_REMOTE_USER }} TARGET: ${{ secrets.CD_WWW_REMOTE_TARGET }}/ EXCLUDE: "/node_modules/" - name: Deploy branch master to prod if: github.ref == 'refs/heads/master' uses: easingthemes/ssh-deploy@main env: SSH_PRIVATE_KEY: ${{ secrets.CD_WWW_SSH_PRIVATE_KEY }} ARGS: "-rltgoDzvO --delete" SOURCE: "dist/docs/" REMOTE_HOST: ${{ secrets.CD_WWW_REMOTE_HOST_PROD }} REMOTE_USER: ${{ secrets.CD_WWW_REMOTE_USER }} TARGET: ${{ secrets.CD_WWW_REMOTE_TARGET }}/ EXCLUDE: "/node_modules/" - 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 - 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 - name: Build Project Artifacts (preview) if: github.ref != 'refs/heads/master' run: vercel build --token=${{ secrets.VERCEL_TOKEN }} working-directory: dist/docs - name: Build Project Artifacts (production) if: github.ref == 'refs/heads/master' run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} working-directory: dist/docs - 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 - 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