Skip to content

Publish Catalog 📰 #174

Publish Catalog 📰

Publish Catalog 📰 #174

Workflow file for this run

---
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