Skip to content

About

Reusable GitHub Actions workflows for Eye2Gene repositories

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

e2g-workflows

Reusable GitHub Actions workflows for Eye2Gene repositories.

All workflows are designed to be called from other repos via uses: and updated in one place. When a workflow is improved here, all consuming repos benefit on their next push.

Available workflows

python-ci.yml — Python CI

A complete CI pipeline for Python projects using uv and just.

Jobs:

Job Description
ci Runs just ci — format check, lint, type-check, audit
license-check Runs just license-check — checks dependency licences (non-blocking)
test Runs just test across a Python version matrix
build Runs just build — builds the wheel and sdist

Inputs:

Input Type Default Description
python-versions string '["3.12", "3.13"]' JSON array of Python versions to test
license-check-ignore string "certifi cookiecutter" Space-separated packages to skip in licence check

Requirements for calling repos:

The workflow delegates all commands to just, so the calling repo must have a justfile with these recipes:

just ci            # ruff format --check, ruff check, ty check, uv audit
just license-check # licensecheck --format markdown --show-only-failing
just test          # pytest with coverage
just build         # uv build

This is the default layout generated by e2g-pypkg.

Usage:

# .github/workflows/ci.yml
name: CI

on:
  push:
    paths:
      - "src/**"
      - "tests/**"
      - "pyproject.toml"
      - "uv.lock"
      - "justfile"
      - ".github/**"
  pull_request:
    branches: [main]

jobs:
  ci:
    uses: eye2Gene/e2g-workflows/.github/workflows/python-ci.yml@main

Customising inputs:

jobs:
  ci:
    uses: eye2Gene/e2g-workflows/.github/workflows/python-ci.yml@main
    with:
      python-versions: '["3.12", "3.13", "3.14"]'
      license-check-ignore: "certifi requests"

Using in a release workflow (run CI before releasing):

# .github/workflows/release.yml
jobs:
  ci:
    uses: eye2Gene/e2g-workflows/.github/workflows/python-ci.yml@main

  release:
    needs: [ci]
    runs-on: ubuntu-latest
    steps:
      # ... your release steps

Adding new workflows

To add a workflow for another language or toolchain:

  1. Create .github/workflows/<language>-ci.yml with on: workflow_call
  2. Document it in this README following the same format
  3. Open a PR — once merged to main, it's immediately available to all consumers

Planned additions:

  • node-ci.yml — Node.js / TypeScript CI
  • docker-ci.yml — Docker image build and push

Versioning

All workflows are consumed at @main. This means consumers always get the latest version automatically — no version pinning needed.

If a breaking change is ever required (e.g., a justfile recipe is renamed), it will be communicated via the e2g-pypkg template update mechanism (cruft).

Access

This is a public repository. The workflows themselves contain no secrets — authentication tokens are passed in from the calling repo's secrets.GITHUB_TOKEN at runtime.

About

Reusable GitHub Actions workflows for Eye2Gene repositories

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors