projectors live cleanup #6242
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
# General notes on github actions: Note that both the working directory | |
# and environment variables generally are not shared between steps. | |
name: Build and Deploy Hazel | |
on: [push] | |
jobs: | |
Deploy: | |
runs-on: ubuntu-latest | |
steps: | |
# NOTE: position the below lines in the code between two steps | |
# and uncomment them to open an ssh connection at that point: | |
#- name: Debugging with ssh | |
# uses: lhotari/action-upterm@v1 | |
- name: Checkout the hazel repo on the current branch | |
uses: actions/checkout@v2 | |
with: | |
path: source | |
- name: Add the name of the current branch to the environment as BRANCH_NAME | |
uses: nelonoel/[email protected] | |
- name: Set-up OCaml | |
uses: ocaml/setup-ocaml@v3 | |
with: | |
ocaml-compiler: 5.2.0 | |
dune-cache: true | |
- name: Retrieve the switch environment if cached | |
id: opam-cache-switch | |
uses: actions/cache@v4 | |
with: | |
path: '_opam' | |
key: ${{ runner.os }}-modules-${{ hashFiles('./source/hazel.opam.locked') }} | |
- name: Install dependencies | |
run: | | |
eval $(opam env) | |
export OPAMYES=1 | |
export DUNE_CACHE=enabled | |
opam install . --deps-only --with-test --locked | |
working-directory: ./source | |
- name: Clean opam switch | |
run: | | |
eval $(opam env) | |
export OPAMYES=1 | |
opam clean --all-switches --download-cache --logs --repo-cache --unused-repositories | |
- name: Build Release | |
run: | | |
export DUNE_CACHE=enabled | |
opam exec -- dune build @src/fmt --auto-promote src --profile release | |
working-directory: ./source | |
- name: Checkout the website build artifacts repo | |
uses: actions/checkout@v4 | |
with: | |
repository: hazelgrove/build | |
token: ${{ secrets.ACCESS_TOKEN }} | |
path: server | |
sparse-checkout: | | |
${{ env.BRANCH_NAME }} | |
- name: Clear any old build of this branch | |
run: if [ -d "${BRANCH_NAME}" ] ; then rm -rf "${BRANCH_NAME}" ; fi | |
working-directory: ./server | |
- name: Copy in the newly built source | |
run: mkdir "./server/${BRANCH_NAME}" && cp -r "./source/_build/default/src/haz3lweb/www"/* "./server/${BRANCH_NAME}" | |
- name : Commit to the website aka deploy | |
run: | | |
git config user.name github-deploy-action | |
git config user.email [email protected] | |
git add -A | |
git pull --no-edit | |
git status | |
git diff-index --quiet HEAD || (git commit -m "github-deploy-action-${BRANCH_NAME}"; git push) | |
working-directory: ./server | |
- name: Run Tests | |
id: test | |
run: | | |
eval $(opam env) | |
make test | |
working-directory: ./source | |
- name: Test Report | |
uses: dorny/test-reporter@v1 | |
with: | |
name: Test Report | |
path: junit_tests*.xml | |
reporter: java-junit | |
fail-on-error: true | |
fail-on-empty: true # Use an empty test report to detect when something failed with the test runner | |
working-directory: ./source |