Skip to content

version 2024.08.03

version 2024.08.03 #83

Workflow file for this run

name: main
on: [push]
defaults:
run:
shell: bash
jobs:
setup:
runs-on: ubuntu-22.04
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Install dependencies
run: make ci-setup
- name: Cache venv
id: cache-venv
uses: actions/cache/save@v4
with:
path: .venv
key: ${{ github.sha }}-venv
lint:
runs-on: ubuntu-22.04
needs: [setup]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Run the linter
run: |
source .venv/bin/activate
make lint-ci
type-check:
runs-on: ubuntu-22.04
needs: [setup]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Run the type-checker
run: |
source .venv/bin/activate
make type-check-ci
test:
runs-on: ubuntu-22.04
needs: [lint,type-check]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Run the test suite and coverage
run: |
source .venv/bin/activate
make coverage-ci
make doctest-ci
docs:
runs-on: ubuntu-22.04
needs: [lint,type-check]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Build the docs
run: |
source .venv/bin/activate
make docs-ci
upload-docs:
if: github.ref == 'refs/heads/main'
needs: [test,docs]
runs-on: ubuntu-22.04
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Build docs for publishing
run: |
source .venv/bin/activate
make pages-ci
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/build/public
pages:
needs: [upload-docs]
if: github.ref == 'refs/heads/main'
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-22.04
steps:
- name: Publish to pages
id: deployment
uses: actions/deploy-pages@v4
build:
needs: [test,docs]
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-22.04
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Restore venv
id: cache-venv-restore
uses: actions/cache/restore@v4
with:
path: .venv
key: ${{ github.sha }}-venv
fail-on-cache-miss: true
- name: Build the package
run: |
source .venv/bin/activate
make build-ci
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: package-build-${{ github.sha }}
path: ./dist/*
publish:
needs: [build]
if: startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-22.04
environment:
name: pypi
url: https://pypi.org/p/crypto-condor
permissions:
contents: write
id-token: write
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: "pip"
- name: Download build
uses: actions/download-artifact@v3
with:
name: package-build-${{ github.sha }}
path: ./dist/
- name: Publish the package
uses: pypa/gh-action-pypi-publish@release/v1