This repository contains a collection of GitHub Actions designed to automate various tasks within your GitHub workflows. Each action is tailored to perform specific functions, enhancing the efficiency and reliability of your CI/CD pipelines.
- auth-app: Authenticates with a GitHub App to generate an installation access token for specified repositories.
- auto-merge: Automatically merges pending pull requests generated by Release-Please, filtering by GitHub App author and label.
- install: Installs software packages using various package managers (APT, Homebrew, Chocolatey, eget, Linuxbrew, NPM, and pipx) based on the operating system and inputs provided.
- release: Automates the process of creating a release on GitHub, including generating a changelog, formatting it, and uploading specified assets.
Each action is designed to be used independently within your GitHub workflows. Refer to the individual action's README for detailed usage instructions and examples.
name: Example Workflow
on: [push]
jobs:
authenticate:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Authenticate with GitHub App
uses: liblaf/actions/auth-app@main
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
install:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Packages
uses: liblaf/actions/install@main
with:
apt: "package1 package2"
brew: "package3 package4"
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create Release
uses: liblaf/actions/release@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: v1.0.0
clobber: true
prerelease: false
hasher: sha256
files: |
dist/*.tar.gz
dist/*.zip
Explore how this project is used in real-world scenarios:
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please read the CONTRIBUTING.md file for guidelines on how to contribute to this project.
If you encounter any issues or have suggestions for improvements, please open an issue on the GitHub repository.