Publish Catalog 📰 #162
Workflow file for this run
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: | |
branches: | |
- main | |
schedule: | |
- cron: "17 17 * * 3,6" | |
jobs: | |
publish-latest: | |
name: Build & Deploy TLGC (latest) 📖 | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/insightsengineering/rstudio_4.3.1_bioc_3.17:latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repo 🛎 | |
uses: actions/checkout@v3 | |
- name: Cache artifacts 📀 | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/package/.staged.dependencies | |
book/_freeze | |
key: ${{ runner.os }}-tlg-catalog-latest | |
- 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: "./package" | |
enable-check: false | |
direction: upstream | |
- name: Render catalog 🖨 | |
run: | | |
quarto render --profile development | |
shell: bash | |
working-directory: book | |
- name: Create artifact 📂 | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
zip -r9 $OLDPWD/site.zip * | |
shell: bash | |
working-directory: book/_site | |
- name: Upload docs ⬆ | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: site-development | |
path: site.zip | |
- name: Publish docs | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./book/_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 TLGC (stable) 📖 | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/insightsengineering/rstudio_4.3.1_bioc_3.17:latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repo 🛎 | |
uses: actions/checkout@v3 | |
- name: Cache artifacts 📀 | |
uses: actions/cache@v3 | |
with: | |
path: | | |
book/_freeze | |
key: ${{ runner.os }}-tlg-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} | |
working-directory: package | |
- name: Render catalog 🖨 | |
run: | | |
quarto render --profile stable | |
shell: bash | |
working-directory: book | |
- name: Create artifact 📂 | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
zip -r9 $OLDPWD/site.zip * | |
shell: bash | |
working-directory: book/_site | |
- name: Upload docs ⬆ | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: actions/upload-artifact@v3 | |
with: | |
name: site-stable | |
path: site.zip | |
- name: Publish docs | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./book/_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-latest, 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@v3 | |
- name: Download artifact ⏬ | |
uses: actions/download-artifact@v3 | |
with: | |
name: site-development | |
path: site-development | |
- name: Download artifact ⏬ | |
uses: actions/download-artifact@v3 | |
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 |