Improve Juvix Markdown pipeline, caching and Python project codebase … #32
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
name: Mkdocs+Juvix CI | |
'on': | |
push: | |
branches: | |
- main | |
env: | |
CI: true | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
PYTHON_VERSION: 3.x | |
POETRY_VERSION: 1.8.3 | |
GIT_COMMITTER_EMAIL: [email protected] | |
GIT_COMMITTER_NAME: Tara | |
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.head_ref || github.run_id }}" | |
cancel-in-progress: true | |
permissions: | |
contents: write | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- run: | | |
git config --global user.name 'Tara' | |
git config --global user.email '[email protected]' | |
- name: Install Juvix | |
uses: jaxxstorm/[email protected] | |
with: | |
repo: anoma/juvix | |
tag: v0.6.6 | |
cache: enable | |
rename-to: juvix | |
chmod: 0755 | |
- uses: actions/[email protected] | |
with: | |
key: juvix-cache-${{ hashFiles('**/*.juvix.md') }}-${{ hashFiles('**/*.juvix') }} | |
path: .juvix-build | |
restore-keys: | | |
juvix-cache- | |
- name: Install Python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install Poetry | |
uses: abatilo/[email protected] | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Cache .cache | |
uses: actions/[email protected] | |
with: | |
key: mkdocs-material-${{ env.cache_id }} | |
path: .cache | |
restore-keys: | | |
mkdocs-material- | |
- name: Install Linux dependencies | |
run: sudo apt-get install -y libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev pngquant graphviz | |
- run: | | |
poetry config virtualenvs.create false --local | |
poetry config virtualenvs.in-project false --local | |
- name: Install Python dependencies | |
run: poetry install | |
- name: Run test | |
run: poetry run pytest | |
- name: Create MkDocs Project | |
run: | | |
juvix-mkdocs new -f -n --no-run-server --no-open --project-name my-juvix-project --anoma-setup | |
- name: Build MkDocs Project | |
run: juvix-mkdocs build -p my-juvix-project | |
env: | |
SITE_URL: https://anoma.github.io/juvix-mkdocs | |
- if: success() | |
uses: JamesIves/[email protected] | |
with: | |
folder: my-juvix-project/site | |
token: ${{ secrets.GITHUB_TOKEN }} | |
clean: true | |
git-config-name: ${{ env.GIT_COMMITTER_NAME }} | |
git-config-email: ${{ env.GIT_COMMITTER_EMAIL }} |