Skip to content

Commit

Permalink
feat: update cli & rename project
Browse files Browse the repository at this point in the history
  • Loading branch information
MattKetmo committed Oct 11, 2023
1 parent 407ef3d commit 673a113
Show file tree
Hide file tree
Showing 30 changed files with 1,098 additions and 1,059 deletions.
8 changes: 5 additions & 3 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.git/
.gitignore
bin/
/.git
/.github
/.gitignore
/Dockerfile
/build
README.md
51 changes: 51 additions & 0 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
change-template: '* $TITLE (#$NUMBER) by @$AUTHOR'
template: |
$CHANGES
**Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
sort-direction: ascending

categories:
- title: '⚠️ BREAKING CHANGES'
label: 'breaking'
- title: '💫 Features'
label: 'feature'
- title: '🛠️ Bug fixes'
label: 'fix'
- title: '🕹️ Others'
label: 'chore'

version-resolver:
# Major is not meant to be used at the moment.
# Should be used with label breaking in the future.
major:
labels:
- 'major'
minor:
labels:
- 'breaking'
- 'feature'
- 'chore'
patch:
labels:
- 'fix'

exclude-labels:
- 'skip-changelog'

autolabeler:
- label: 'breaking'
title:
- '/!:/i'
- label: 'chore'
title:
- '/^chore/i'
- label: 'fix'
title:
- '/^fix/i'
- label: 'feature'
title:
- '/^feat/i'
101 changes: 101 additions & 0 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Docker

on:
push:
branches:
- main
paths:
- 'pkg/**'
- '*.go'
- 'go.*'
- Dockerfile
- .github/workflows/docker.yaml
pull_request:
branches:
- main
paths:
- 'pkg/**'
- '*.go'
- 'go.*'
- Dockerfile
- .github/workflows/docker.yaml
release:
types:
- published

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
PLATFORMS: ${{ github.event_name == 'pull_request' && 'linux/amd64' || 'linux/amd64,linux/arm64' }}

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: "Generate Build ID (main)"
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: |
branch=${GITHUB_REF##*/}
sha=${GITHUB_SHA::8}
ts=$(date +%s)
echo "BUILD_ID=${branch}-${ts}-${sha}" >> $GITHUB_ENV
- name: "Generate Build ID (PR)"
if: github.event_name == 'pull_request'
run: |
echo "BUILD_ID=pr-${{ github.event.number }}-$GITHUB_RUN_ID" >> $GITHUB_ENV
- name: "Generate Build ID (Release)"
if: github.event_name == 'release'
run: |
echo "BUILD_ID=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: 'Generate App Version'
run: echo "VERSION=$(make version)" >> $GITHUB_ENV

- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=pr
type=ref,event=branch
type=raw,value=${{ env.BUILD_ID }}
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: ${{ env.PLATFORMS }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
VERSION=${{ env.VERSION }}
42 changes: 0 additions & 42 deletions .github/workflows/docker.yml

This file was deleted.

29 changes: 29 additions & 0 deletions .github/workflows/pr-title.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: 'Validate PR title'

on:
pull_request:
branches: [ main ]
types: [ opened, reopened, synchronize ]

permissions:
pull-requests: read
statuses: write

jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
# Please look up the latest version from
# https://github.com/amannn/action-semantic-pull-request/releases
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
fix
feat
chore
requireScope: false
wip: true
validateSingleCommit: false
22 changes: 22 additions & 0 deletions .github/workflows/release-drafter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Release Drafter

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
types: [ opened, reopened, synchronize ]

permissions:
contents: read

jobs:
update_release_draft:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40 changes: 40 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Release

on:
release:
types: [published]

permissions:
contents: write
packages: write

jobs:
releases-matrix:
name: Release Go Binary
runs-on: ubuntu-latest
strategy:
matrix:
goos: [linux, windows, darwin]
goarch: ["386", amd64, arm64]
exclude:
- goarch: "386"
goos: darwin
- goarch: arm64
goos: windows
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true

- uses: wangyoucao577/go-release-action@v1
env:
BUILD_FOLDER: .
with:
build_command: make build
extra_files: LICENSE README.md
github_token: ${{ secrets.GITHUB_TOKEN }}
goos: ${{ matrix.goos }}
goarch: ${{ matrix.goarch }}
goversion: "1.20"
md5sum: false
33 changes: 0 additions & 33 deletions .github/workflows/release.yml

This file was deleted.

46 changes: 46 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Test

on:
push:
branches:
- main
paths:
- 'pkg/**'
- '*.go'
- 'go.*'
- '.github/workflows/test.yaml'
pull_request:
paths:
- 'pkg/**'
- '*.go'
- 'go.*'
- '.github/workflows/test.yaml'

env:
GO_VERSION: "1.20"

jobs:
unit-tests:
name: 'Unit tests'
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4

- uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}

- id: go-cache-paths
run: |
echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
# Cache go mod cache to speedup deps downloads
- uses: actions/cache@v3
with:
path: ${{ steps.go-cache-paths.outputs.go-mod }}
key: ${{ runner.os }}-go-mod-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-mod-

- name: 'Run unit tests'
run: |
make test
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
dist/
/build
Loading

0 comments on commit 673a113

Please sign in to comment.