Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/yaml-formatting.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: YAML Workflow Formatting

on:
pull_request:
branches: [main]

jobs:
Formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Formatting
uses: super-linter/super-linter@v8
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_YAML_PRETTIER: true
94 changes: 88 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# MPUSP GitHub Actions

This repository contains reusable GitHub Actions workflows for the [MPUSP](https://www.mpusp.mpg.de/), the Max Planck Unit for the Science of Pathogens.
Expand All @@ -8,21 +7,104 @@ This repository contains reusable GitHub Actions workflows for the [MPUSP](https
These workflows are designed to streamline CI processes across MPUSP projects by providing standardized, reusable automation templates.
Their main purpose is to secure a harmonized, easy-to-maintain, and up-to-date collection of reusable CI workflows for our [Snakemake pipelines](https://github.com/orgs/MPUSP/repositories).

## Workflows

Currently available workflows include:

- `snakemake-tests`: Runs standardized tests for Snakemake workflows.
- `deploy-apptainer`: Builds and deploys Apptainer containers for Snakemake workflows to GitHub Packages ([GHCR](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry)). **Note**: work in progress, use carefully!
- `release-please`: Automates the release process using the [release-please](https://github.com/googleapis/release-please) tool.
- `conventional-prs`: Lints pull requests for conventional commit messages.

## Usage

To use these workflows in your repository, reference them in your workflow files:
To use these workflows in your repository, reference them in your workflow files as outlined below.
Note: workflows can be pinned to a specific version tag (`@v1.0`), but it is recommended to use the latest stable version (`@main`) in order to keep manual intervention in workflows to a minimum.

Comment on lines +21 to +23
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The note recommends pinning to @main as the "latest stable" version. main is a moving ref and not inherently stable; recommending it increases the risk of unexpected changes (and supply-chain exposure) for downstream repositories. Consider recommending a release tag (e.g. @v1 / @v1.2.3) or a commit SHA, and if @main is supported, document it as an opt-in for early adopters rather than "stable".

Copilot uses AI. Check for mistakes.
### Snakemake Tests

```yaml
name: Snakemake Tests

on:
pull_request:
branches: [main]

jobs:
my-job:
uses: mpusp/mpusp-github-actions/.github/workflows/workflow-name.yml@main
snakemake-tests:
uses: MPUSP/mpusp-github-actions/.github/workflows/snakemake-tests.yml@main
with:
cores: 2
dryrun: false
```

## Workflows
### Deploy Apptainer

Documentation for individual workflows coming soon.
```yaml
name: Deploy Apptainer

on:
workflow_run:
workflows: ["Release Please"]
types:
- completed
workflow_dispatch:

permissions:
contents: read
packages: write

jobs:
deploy-apptainer:
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
uses: MPUSP/mpusp-github-actions/.github/workflows/deploy-apptainer.yml@main
```

### Release Please

```yaml
name: Release Please

on:
push:
branches: [main]

permissions:
contents: write
pull-requests: write
issues: write

jobs:
release-please:
uses: MPUSP/mpusp-github-actions/.github/workflows/release-please.yml@main
```

### Conventional PRs

```yaml
name: Conventional PRs

on:
pull_request_target:
types:
- opened
- reopened
- edited
- synchronize

permissions:
pull-requests: read

jobs:
conventional-prs:
uses: MPUSP/mpusp-github-actions/.github/workflows/conventional-prs.yml@main
```

## Contributing

For issues and comments, please leave an issue on [Github](https://github.com/MPUSP/mpusp-github-actions/issues).
Copy link

Copilot AI Mar 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Brand name casing: the link text should be "GitHub", not "Github".

Suggested change
For issues and comments, please leave an issue on [Github](https://github.com/MPUSP/mpusp-github-actions/issues).
For issues and comments, please leave an issue on [GitHub](https://github.com/MPUSP/mpusp-github-actions/issues).

Copilot uses AI. Check for mistakes.
For further questions, please contact bioinformatics@mpusp.mpg.de.

## Authors

- MPUSP bioinformatics team (http://mpusp.github.io/)