Skip to content

A repository for my collection of reusable workflows.

Notifications You must be signed in to change notification settings

winstxnhdw/actions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

actions

codespell.yml dependabot.yml

This repository contains a collection of my reusable GitHub workflows. Most actions are handwritten for performance, except for officially maintained actions.

Workflows

bun.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

codespell.yml

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: /

create.yml

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

dependabot-private.yml

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 }}

dependabot-public.yml

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 }}

docker-push.yml

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 }}

format-bun.yml

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

format-python.yml

Reusable Python workflow for fixing Python formatting with ruff.

permissions:
  contents: write

jobs:
  format:
    uses: winstxnhdw/actions/.github/workflows/format-python.yml@main

keep-alive.yml

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

python.yml

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

release.yml

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

rust.yml

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

spaces-deploy.yml

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 }}

spaces-restart.yml

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 }}

spaces-warmer.yml

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
    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

About

A repository for my collection of reusable workflows.

Topics

Resources

Stars

Watchers

Forks