Skip to content
# General notes on github actions: Note that both the working directory
# and environment variables generally are not shared between steps.
name: 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 # STEP 1
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: Retrieve the build environment if cached # STEP 2
id: opam-cache
uses: actions/cache@v2
with:
path: '/home/runner/.opam/'
key: ${{ runner.os }}-modules-${{ hashFiles('./source/opam.export') }}
- name: Install dependencies and build hazel # STEP 3
run: |
sudo apt --assume-yes install curl m4 opam
export OPAMYES=1
opam init --compiler=ocaml-base-compiler.5.0.0
eval $(opam env)
make deps
make release
working-directory: ./source
- name: Checkout the website build artifacts repo # STEP 4
uses: actions/checkout@v2
with:
repository: hazelgrove/build
token: ${{ secrets.ACCESS_TOKEN }}
path: server
- name: Clear any old build of this branch # STEP 5
run: if [ -d "${BRANCH_NAME}" ] ; then rm -rf "${BRANCH_NAME}" ; fi
working-directory: ./server
- name: Copy in the newly built source # STEP 6
run: mkdir "./server/${BRANCH_NAME}" && cp -r "./source/_build/default/src/haz3lweb/www"/* "./server/${BRANCH_NAME}"
- name : Commit to the website aka deploy # STEP 7
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