Merge pull request #17 from rollkit/dependabot/github_actions/rollkit… #34
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI and Release | |
on: | |
push: | |
branches: | |
- main | |
# Trigger on version tags | |
tags: | |
- "v*" | |
pull_request: | |
merge_group: | |
workflow_dispatch: | |
# Inputs the workflow accepts. | |
inputs: | |
version: | |
# Friendly description to be shown in the UI instead of 'name' | |
description: "Semver type of new version (major / minor / patch)" | |
# Input has to be provided for the workflow to run | |
required: true | |
type: choice | |
options: | |
- patch | |
- minor | |
- major | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
env: | |
# use consistent go version throughout pipeline here | |
GO_VERSION: "1.21" | |
outputs: | |
go-version: ${{ steps.set-vars.outputs.go-version }} | |
steps: | |
- name: Set go version | |
id: set-vars | |
run: echo "go-version=${{env.GO_VERSION}}" >> "$GITHUB_OUTPUT" | |
lint: | |
needs: [setup] | |
uses: ./.github/workflows/lint.yml | |
with: | |
go-version: ${{ needs.setup.outputs.go-version }} | |
test: | |
needs: [setup] | |
uses: ./.github/workflows/test.yml | |
with: | |
go-version: ${{ needs.setup.outputs.go-version }} | |
# branch_name trims ref/heads/ from github.ref to access a clean branch name | |
branch_name: | |
runs-on: ubuntu-latest | |
outputs: | |
branch: ${{ steps.trim_ref.outputs.branch }} | |
steps: | |
- name: Trim branch name | |
id: trim_ref | |
run: | | |
echo "branch=$(${${{ github.ref }}:11})" >> $GITHUB_OUTPUT | |
# Make a release if this is a manually trigger job, i.e. workflow_dispatch | |
release-dispatch: | |
needs: [lint, test, branch_name] | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
permissions: "write-all" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Version Release | |
uses: rollkit/.github/.github/actions/[email protected] | |
with: | |
github-token: ${{secrets.GITHUB_TOKEN}} | |
version-bump: ${{inputs.version}} | |
release-branch: ${{needs.branch_name.outputs.branch}} |