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
- dependabot-private.yml
- dependabot-public.yml
- docker-push.yml
- format-bun.yml
- format-python.yml
- keep-alive.yml
- python.yml
- release.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 Prettier and ESLint.
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
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, Pylint and Pyright.
jobs:
python:
uses: winstxnhdw/actions/.github/workflows/python.yml@main
with:
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 Hugging Face Spaces workflow for deploying a Dockerfile
to a Hugging Face Space of the same repository name.
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.
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.
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