Skip to content

GitHub Actions Composite/Reusable Workflows

License

Notifications You must be signed in to change notification settings

peaceiris/workflows

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

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

      - run: goreleaser -h
      - run: goreleaser check

Install a Specific Version

- uses: peaceiris/workflows/setup-goreleaser@v0.21.0
  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.0

      - run: ko version

Install a Specific Version

- uses: peaceiris/workflows/setup-ko@v0.21.0
  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.0

      - run: mage -h
      - run: mage fmt

Install a Specific Version

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

Reusable hadolint workflow

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

Reusable actionlint workflow

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

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

About

GitHub Actions Composite/Reusable Workflows

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages