Skip to content

Commit

Permalink
Create GitHub action for releasing _freeze folder (#544)
Browse files Browse the repository at this point in the history
  • Loading branch information
penelopeysm authored Nov 2, 2024
1 parent 385b160 commit 194f66f
Showing 1 changed file with 75 additions and 0 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Create release with _freeze

on:
workflow_dispatch:

permissions:
contents: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Julia
uses: julia-actions/setup-julia@v2
with:
version: '1.10'

- name: Load Julia packages from cache
uses: julia-actions/cache@v2

- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2
with:
# Needs Quarto 1.6 (which is currently a pre-release version) to fix #533
version: pre-release

- name: Restore cached _freeze folder
id: cache-restore
uses: actions/cache/restore@v4
with:
path: |
./_freeze/
key: |
${{ runner.os }}-${{ hashFiles('**/Manifest.toml') }}-${{ hashFiles('**/index.qmd') }}
restore-keys: |
${{ runner.os }}-${{ hashFiles('**/Manifest.toml') }}
- name: Render
run: quarto render

- name: Compress _freeze folder
run: tar -czf _freeze.tar.gz _freeze

- name: Generate tag name for release
id: tag
run: echo "tag_name=freeze_$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag_name }}
files: |
_freeze.tar.gz
Manifest.toml
body: |
This release contains the `_freeze` folder generated by Quarto when
rendering the docs. You can use this to speed up the rendering
process on your local machine by downloading and extracting the
`_freeze` folder, then placing it at the root of the project.
Note that the contents of the `_freeze` folder only hash the
contents of the .qmd files, and do not include information about
the Julia environment. Thus, each `_freeze` folder is only valid
for a given Julia environment, which is specified in the
Manifest.toml file included in this release. To ensure
reproducibility, you should make sure to use the Manifest.toml file
locally as well.
These releases are not automatically generated. To make an updated
release with the contents of the `_freeze` folder from the main
branch, you can run the `Create release with _freeze` workflow from
https://github.com/TuringLang/docs/actions/workflows/create_release.yml.

0 comments on commit 194f66f

Please sign in to comment.