Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create GitHub action for releasing _freeze folder #544

Merged
merged 1 commit into from
Nov 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.
Loading