Skip to content

GitHub Actions Composite/Reusable Workflows

License

Notifications You must be signed in to change notification settings

peaceiris/workflows

Folders and files

NameName
Last commit message
Last commit date
Mar 10, 2025
Oct 15, 2020
Oct 4, 2021
Apr 23, 2022
Mar 10, 2025
Apr 17, 2022
Mar 10, 2025
Dec 13, 2024
Apr 17, 2022
Mar 10, 2025
Mar 10, 2025
Dec 14, 2024
Apr 6, 2024
Jan 5, 2023
Dec 14, 2024
Dec 14, 2024
Sep 27, 2020
Mar 10, 2025
Mar 25, 2025
Dec 14, 2024
Dec 14, 2024

Repository files navigation

Composite Run Steps GitHub Actions

A collection of composite run steps GitHub Actions.

Creating a composite action - GitHub Docs

Setup Docker Project

This composite action includes the following actions:

  • Install docker compose v2
  • Install docker buildx

Definition: setup-docker/action.yml

Install the Latest Version

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: peaceiris/workflows/setup-docker@v0.21.1
      - run: docker compose version
      - run: docker buildx version

Install a Specific Version

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: peaceiris/workflows/setup-docker@v0.21.1
        with:
          compose-version: '2.4.1'
          buildx-version: '0.8.2'
      - run: docker compose version
      - run: docker buildx version

Setup Go Project

This composite action includes the following actions:

  • actions/setup-go
  • peaceiris/workflows/setup-mage
  • peaceiris/workflows/setup-goreleaser
  • actions/cache

Definition: setup-go/action.yml

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-go@v0.21.1
        with:
          go-version: '1.18'

      - run: go version
      - run: mage -h
      - run: goreleaser -h

Setup Node.js Project

This composite action includes the following actions:

  • actions/setup-node
  • actions/cache

Definition: setup-node/action.yml

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-node@v0.21.1
        with:
          node-version: '16.14.2'
          # node-version-file: '.nvmrc'

      - run: node -v
      - run: npm -v

Setup Python Project

This composite action includes the following actions:

  • actions/setup-python
  • actions/cache

Definition: setup-python/action.yml

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-python@v0.21.1
        with:
          python-version: '3.10'

      - run: python3 -V
      - run: python3 -m pip -V
      - run: python3 -m pipenv --version

Setup Rust Project

This composite action includes the following actions:

  • actions/cache

Definition: setup-rust/action.yml

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-rust@v0.21.1

Install goreleaser to a GitHub Actions Ubuntu virtual environment.

Definition: setup-goreleaser/action.yml

Install the Latest Version

Here is an example GitHub Actions workflow to install the latest goreleaser and run it.

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-goreleaser@v0.21.1

      - run: goreleaser -h
      - run: goreleaser check

Install a Specific Version

- uses: peaceiris/workflows/setup-goreleaser@v0.21.1
  with:
    goreleaser-version: '1.8.1'

Install ko to a GitHub Actions Ubuntu or macOS virtual environment.

Definition: setup-ko/action.yml

Install the Latest Version

Here is an example GitHub Actions workflow to install the latest ko and run it.

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-ko@v0.21.1

      - run: ko version

Install a Specific Version

- uses: peaceiris/workflows/setup-ko@v0.21.1
  with:
    ko-version: '0.17.1'

Install mage to a GitHub Actions Ubuntu virtual environment.

Definition: setup-mage/action.yml

Install the Latest Version

Here is an example GitHub Actions workflow to install the latest mage and run it.

name: CI

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - uses: peaceiris/workflows/setup-mage@v0.21.1

      - run: mage -h
      - run: mage fmt

Install a Specific Version

- uses: peaceiris/workflows/setup-mage@v0.21.1
  with:
    mage-version: '1.10.0'

Reusable hadolint workflow

jobs:
  hadolint:
    uses: peaceiris/workflows/.github/workflows/hadolint.yml@v0.21.1

Reusable actionlint workflow

jobs:
  actionlint:
    uses: peaceiris/workflows/.github/workflows/actionlint.yml@v0.21.1

Reusable pull-request merger workflow

name: pull-request

on:
  issue_comment:
    types: [created, edited]

jobs:
  merger:
    uses: peaceiris/workflows/.github/workflows/merger.yml@v0.21.1