This repository contains a collection of my reusable GitHub workflows. Most actions are handwritten for performance, except for officially maintained actions.
- bun.yml
- codespell.yml
- create.yml
- dependabot-private.yml
- dependabot-public.yml
- docker-push.yml
- format-bun.yml
- format-python.yml
- keep-alive.yml
- python.yml
- release.yml
- rust.yml
- spaces-deploy.yml
- spaces-restart.yml
- spaces-warmer.yml
Reusable Bun workflow for lint/test/build.
jobs:
bun:
uses: winstxnhdw/actions/.github/workflows/bun.yml@main
with:
disable-formatter: false
disable-linter: false
disable-test: false
disable-build: false
build-args: --test
Minimally, you can use it in the following manner.
jobs:
bun:
uses: winstxnhdw/actions/.github/workflows/bun.yml@main
Reusable codespell workflow for checking misspelled words in source code.
jobs:
codespell:
uses: winstxnhdw/actions/.github/workflows/codespell.yml@main
with:
path: /
skip: ''
ignore_words_file: .codespellignore
Minimally, you can use it in the following manner.
jobs:
codespell:
uses: winstxnhdw/actions/.github/workflows/codespell.yml@main
with:
path: /
Reusable GitHub template workflow for dynamically renaming the repository when creating a new repository from a template.
on: create
permissions:
contents: write
jobs:
create:
uses: winstxnhdw/actions/.github/workflows/create.yml@main
Reusable Dependabot workflow for auto-merging and/or auto-approving Dependabot pull requests in private repositories.
permissions:
contents: write
pull-requests: write
jobs:
auto-merge:
uses: winstxnhdw/actions/.github/workflows/dependabot-private.yml@main
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
Reusable Dependabot workflow for auto-merging Dependabot pull requests in public repositories.
permissions:
contents: write
jobs:
auto-merge:
uses: winstxnhdw/actions/.github/workflows/dependabot-public.yml@main
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
Reusable Docker workflow for pushing Docker images into the GitHub Container registry.
permissions:
packages: write
jobs:
build:
uses: winstxnhdw/actions/.github/workflows/docker-push.yml@main
with:
file: Dockerfile.build
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
Reusable Bun workflow for fixing Bun formatting and lints with Biome.
permissions:
contents: write
jobs:
format:
uses: winstxnhdw/actions/.github/workflows/format-bun.yml@main
Reusable Python workflow for fixing Python formatting with ruff.
permissions:
contents: write
jobs:
format:
uses: winstxnhdw/actions/.github/workflows/format-python.yml@main
with:
cache-dependency-glob: '**/uv.lock'
Minimally, you can use it in the following manner.
permissions:
contents: write
jobs:
format:
uses: winstxnhdw/actions/.github/workflows/format-python.yml@main
Reusable workflow for keeping your GitHub workflows alive. GitHub will suspend a workflow after 60 days of inactivity. Learn more here.
name: Keep Alive
on:
schedule:
# ┌──────────────── minute (0 - 59)
# │ ┌────────────── hour (0 - 23)
# │ │ ┌──────────── day of the month (1 - 31)
# │ │ │ ┌────────── month (1 - 12 or JAN-DEC)
# │ │ │ │ ┌──────── day of the week (0 - 6 or SUN-SAT)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- cron: 0 0 1 * *
permissions:
contents: write
jobs:
keep-alive:
uses: winstxnhdw/actions/.github/workflows/keep-alive.yml@main
Reusable Python workflow for lint/test/build with Poetry, Ruff and Pyright.
jobs:
python:
uses: winstxnhdw/actions/.github/workflows/python.yml@main
with:
runs-on: ubuntu-latest
python-version: '*'
disable-test: false
Minimally, you can use it in the following manner.
jobs:
python:
uses: winstxnhdw/actions/.github/workflows/python.yml@main
Reusable workflow for naively uploading a releases to GitHub from a workflow artifact.
permissions:
contents: write
jobs:
release:
uses: winstxnhdw/actions/.github/workflows/release.yml@main
with:
release-tag: latest
release-title: Build
release-asset: dist/*
artifact-name: build
artifact-path: dist/
Minimally, you can use it in the following manner.
permissions:
contents: write
jobs:
release:
uses: winstxnhdw/actions/.github/workflows/release.yml@main
with:
release-tag: latest
release-title: Build
release-asset: dist/*
artifact-name: build
Reusable Rust workflow for linting.
jobs:
rust:
uses: winstxnhdw/actions/.github/workflows/rust.yml@main
with:
toolchain: nightly
disable-test: false
Minimally, you can use it in the following manner.
jobs:
rust:
uses: winstxnhdw/actions/.github/workflows/rust.yml@main
Reusable Hugging Face Spaces workflow for deploying a Dockerfile
to a Hugging Face Space of the same repository name.
Important
This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.
jobs:
deploy:
uses: winstxnhdw/actions/.github/workflows/spaces-deploy.yml@main
secrets:
token: ${{ secrets.HF_TOKEN }}
Reusable Hugging Face Spaces workflow for factory restarting a Hugging Face Space of the same repository name.
Important
This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.
jobs:
restart:
uses: winstxnhdw/actions/.github/workflows/spaces-restart.yml@main
secrets:
token: ${{ secrets.HF_TOKEN }}
Reusable Hugging Face Spaces workflow for warming a Hugging Face Space of the same repository name.
Important
This workflow assumes that your Hugging Face account has the same user and repository name as the GitHub repository running this workflow.
name: Warm
on:
schedule:
# ┌──────────────── minute (0 - 59)
# │ ┌────────────── hour (0 - 23)
# │ │ ┌──────────── day of the month (1 - 31)
# │ │ │ ┌──────── month (1 - 12 or JAN-DEC)
# │ │ │ │ ┌────── day of the week (0 - 6 or SUN-SAT)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- cron: 0 0 */2 * *
jobs:
warm:
uses: winstxnhdw/actions/.github/workflows/spaces-warmer.yml@main
with:
path: '/api/v3'
secrets:
token: ${{ secrets.HF_TOKEN }}
Minimally, you can use it in the following manner.
name: Warm
on:
schedule:
# ┌──────────────── minute (0 - 59)
# │ ┌────────────── hour (0 - 23)
# │ │ ┌──────────── day of the month (1 - 31)
# │ │ │ ┌──────── month (1 - 12 or JAN-DEC)
# │ │ │ │ ┌────── day of the week (0 - 6 or SUN-SAT)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- cron: 0 0 */2 * *
jobs:
warm:
uses: winstxnhdw/actions/.github/workflows/spaces-warmer.yml@main