Skip to content

bruzit/github-actions-and-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Actions and Workflows

A collection of GitHub composite actions and reusable workflows

Features

Reusable Semantic Release Workflow

Reusable Semantic Release workflow using the Conventional Commits preset to automate versioning, tags with SemVer and major tag, generates GitHub releases, and updates the CHANGELOG.

Usage

Use Semantic Release Workflow

Create a workflow, for example, .github/workflows/semantic-release.yaml:

---
name: Semantic Release

on:
  push:
    branches:
      - main

jobs:
  release:
    name: Release
    uses: bruzit/github-actions-and-workflows/.github/workflows/semantic-release.yaml@v0
    permissions:
      contents: write
      issues: write
      pull-requests: write
    with:
      GH_APP_ID: ${{ vars.GH_APP_ID }}
    secrets:
      GH_APP_PEM_FILE: ${{ secrets.GH_APP_PEM_FILE }}

To create a GitHub App and a GitHub App Installation:

  • GitHub
    • Organization / Settings / Developer settings / GitHub Apps
      • New GitHub App
        • Create GitHub App
          • GitHub App name: name
          • Description: description
          • Homepage URL: homepage URL
        • Webhook
          • Active: off
        • Permissions
          • Organization permissions
            • Contents: Read and write
            • Issues: Read and write
            • Pull requests: Read and write
          • Where can this GitHub App be installed?: choose what suits you best
        • Create GitHub App
      • your app
        • General
          • Generate a private key
        • Install App
          • your organization: Install
    • Repository / Settings / Secrets and variables / Actions
      • Secrets
        • Repository secrets / New repository secret
          • Name: GH_APP_PEM_FILE
          • Secret: content of the PEM file
          • Add secret
      • Variables
        • Repository variables / New repository variable
          • Name: GH_APP_ID
          • Value: GitHub App ID
          • Add variable

Configure Semantic Release in the repository, for example, .releaserc.yaml:

---
branches:
  - main
plugins:
  - - "@semantic-release/commit-analyzer"
    - preset: conventionalcommits
  - - "@semantic-release/release-notes-generator"
    - preset: conventionalcommits
  - "@semantic-release/github"
  - - "@semantic-release/changelog"
    - changelogTitle: '# Changelog'
  - - "@semantic-release/git"
    - assets:
      - CHANGELOG.md
  - semantic-release-major-tag

Copyright and Licensing

MIT License
Copyright © 2026 Martin Bružina

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors