Skip to content

Commit

Permalink
ci: Add GitHub Actions workflows and GoReleaser configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
yarlson committed Oct 8, 2024
1 parent b2e7555 commit d50291e
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 0 deletions.
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: CI Pipeline

on:
push:
branches:
- main
pull_request:

jobs:
build-lint:
name: Build, Test, and Lint
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
go-version: ["1.22.x", "stable"]
os: [ubuntu-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
cache: true

- name: Install dependencies
run: go mod download

- name: Install golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: latest

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v4
with:
args: --timeout 5m

- name: Run build
run: go build

security:
name: CodeQL Analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: go

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
30 changes: 30 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Release Pipeline

on:
release:
types: [created]

permissions:
contents: write

jobs:
goreleaser:
name: Build and Release with GoReleaser
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31 changes: 31 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: 2

project_name: zero

builds:
- id: zero
main: ./main.go
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
ldflags:
- -s -w -X main.version={{.Version}}

archives:
- id: release_archive
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
files:
- LICENSE
- README.md

release:
github:
owner: yarlson
name: zero

checksum:
name_template: "{{ .ProjectName }}_{{ .Version }}_checksums.txt"

0 comments on commit d50291e

Please sign in to comment.