Publish Catalog 📰 #174
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: Publish Catalog 📰 | |
on: | |
workflow_call: | |
secrets: | |
REPO_GITHUB_TOKEN: | |
description: | | |
Github token with write access to the repository | |
required: false | |
GCHAT_WEBHOOK: | |
description: | | |
Google Chat webhook to send failure notifications | |
required: false | |
workflow_dispatch: | |
push: | |
tags: | |
- "v*" | |
branches: | |
- main | |
schedule: | |
- cron: "17 17 * * 3,6" | |
jobs: | |
publish-dev: | |
name: Build & Deploy Catalog (dev) 📖 | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/insightsengineering/rstudio:latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repo 🛎 | |
uses: actions/checkout@v4.1.1 | |
- name: Cache artifacts 📀 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.staged.dependencies | |
_freeze | |
key: ${{ runner.os }}-catalog-dev | |
- name: Normalize variables 📏 | |
run: | | |
echo "gchat_webhook=${{ secrets.GCHAT_WEBHOOK }}" >> $GITHUB_ENV | |
shell: bash | |
- name: Run Staged dependencies 🎦 | |
uses: insightsengineering/staged-dependencies-action@v1 | |
env: | |
GITHUB_PAT: ${{ secrets.REPO_GITHUB_TOKEN }} | |
with: | |
path: "." | |
enable-check: false | |
direction: upstream | |
- name: Render catalog 🖨 | |
run: | | |
R CMD INSTALL . | |
git config --global --add safe.directory ${GITHUB_WORKSPACE} | |
quarto render --profile development | |
shell: bash | |
- name: Create artifact 📂 | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
zip -r9 ../site.zip * | |
shell: bash | |
working-directory: _site | |
- name: Upload docs ⬆ | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: actions/upload-artifact@v4 | |
with: | |
name: site-development | |
path: site.zip | |
- name: Publish docs | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./_site | |
destination_dir: development | |
- name: GChat notification 🔔 | |
if: (failure() || cancelled()) && env.gchat_webhook != '' | |
uses: insightsengineering/google-chat-notification@master | |
with: | |
name: ${{ github.event.repository.name }} - development | |
url: ${{ secrets.GCHAT_WEBHOOK }} | |
status: ${{ job.status }} | |
publish-stable: | |
name: Build & Deploy Catalog (stable) 📖 | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/insightsengineering/rstudio:latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repo 🛎 | |
uses: actions/checkout@v4.1.1 | |
- name: Cache artifacts 📀 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
_freeze | |
key: ${{ runner.os }}-catalog-stable | |
- name: Normalize variables 📏 | |
run: | | |
echo "gchat_webhook=${{ secrets.GCHAT_WEBHOOK }}" >> $GITHUB_ENV | |
shell: bash | |
- name: Install packages 🎦 | |
run: | | |
devtools::install_dev_deps(".", repos = c("https://insightsengineering.r-universe.dev/", "https://cloud.r-project.org/")) | |
shell: Rscript {0} | |
- name: Render catalog 🖨 | |
run: | | |
R CMD INSTALL . | |
git config --global --add safe.directory ${GITHUB_WORKSPACE} | |
quarto render --profile stable | |
shell: bash | |
- name: Create artifact 📂 | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
zip -r9 ../site.zip * | |
shell: bash | |
working-directory: _site | |
- name: Upload docs ⬆ | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: actions/upload-artifact@v4 | |
with: | |
name: site-stable | |
path: site.zip | |
- name: Publish docs | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./_site | |
destination_dir: stable | |
- name: GChat notification 🔔 | |
if: (failure() || cancelled()) && env.gchat_webhook != '' | |
uses: insightsengineering/google-chat-notification@master | |
with: | |
name: ${{ github.event.repository.name }} - stable | |
url: ${{ secrets.GCHAT_WEBHOOK }} | |
status: ${{ job.status }} | |
upload-release-assets: | |
name: Upload assets 🔼 | |
needs: [publish-dev, publish-stable] | |
runs-on: ubuntu-latest | |
if: > | |
startsWith(github.ref, 'refs/tags/v') | |
&& !contains(github.event.commits[0].message, '[skip docs]') | |
steps: | |
- name: Checkout repo 🛎 | |
uses: actions/checkout@v4.1.1 | |
- name: Download artifact ⏬ | |
uses: actions/download-artifact@v4 | |
with: | |
name: site-development | |
path: site-development | |
- name: Download artifact ⏬ | |
uses: actions/download-artifact@v4 | |
with: | |
name: site-stable | |
path: site-stable | |
- name: Upload binaries to release ⤴ | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: site-development/site.zip | |
asset_name: catalog-development.zip | |
tag: ${{ github.ref }} | |
overwrite: true | |
- name: Upload binaries to release ⤴ | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: site-stable/site.zip | |
asset_name: catalog-stable.zip | |
tag: ${{ github.ref }} | |
overwrite: true |