diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml new file mode 100644 index 000000000..ab6eaeab7 --- /dev/null +++ b/.github/workflows/create_release.yml @@ -0,0 +1,59 @@ +name: Create release with _freeze + +on: + workflow_dispatch: + # Comment out before merging!! + push: + branches: + - py/release-workflow + +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: 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: 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.