Skip to content

Commit

Permalink
feat(commitizen): Use commitizen instead of custom script and add git…
Browse files Browse the repository at this point in the history
… cliff

Signed-off-by: dark0dave <dark0dave@mykolab.com>
  • Loading branch information
dark0dave committed Dec 22, 2023
1 parent df34e17 commit 1ae68c6
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 182 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
test:
name: test
runs-on: ubuntu-latest
container: golang:1.21-alpine3.17
container: golang:1.21-alpine3.19
steps:
- name: Install git
run: apk add --update --no-cache git
Expand All @@ -37,7 +37,7 @@ jobs:
build:
name: build
runs-on: ubuntu-latest
container: golang:1.21-alpine3.17
container: golang:1.21-alpine3.19
strategy:
matrix:
os: [linux, darwin, windows]
Expand Down
46 changes: 0 additions & 46 deletions CHANGELOG.md

This file was deleted.

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM --platform=$BUILDPLATFORM golang:1.21-alpine3.17 AS builder
FROM --platform=$BUILDPLATFORM golang:1.21-alpine3.19 AS builder
ARG GITHUB_REF GITHUB_SHA
WORKDIR /src
COPY go.mod go.sum ./
Expand Down
17 changes: 8 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ GOARCH ?= $(shell go env GOARCH)
BIN_ARCH ?= $(GOOS)-$(GOARCH)
RELEASE_SUFFIX ?= $(GIT_REF)-$(BIN_ARCH).tar.gz

OPA_REPO ?= github.com/open-policy-agent/opa
OPA_VERSION ?= v0.22.0

BIN_DIR ?= bin
CMD_DIR ?= cmd
RELEASE_DIR ?= release-artifacts
Expand All @@ -47,7 +50,7 @@ SRC ?= $(shell find . -iname '*.go')
GOCMD ?= go
GOBUILD ?= $(GOCMD) build

REQ_BINS = go opa
REQ_BINS = go

_ := $(foreach exec,$(REQ_BINS), \
$(if $(shell which $(exec)),some string,$(error "No $(exec) binary in $$PATH")))
Expand Down Expand Up @@ -81,27 +84,23 @@ $(RELEASE_DIR)/%-$(RELEASE_SUFFIX): $(BIN_DIR)/%-$(BIN_ARCH)$(BIN_SUFFIX)
$(TAR) -cvz --transform 's,$(BIN_DIR)/$(*)-$(BIN_ARCH)$(BIN_SUFFIX),$(*)$(BIN_SUFFIX),gi' -f "$@" "$<"

## Run Go tests
test: test-fmt test-git
test: test-fmt
go test -v -coverprofile fmtcoverage.html ./...
.PHONY: test

## Run go and opt fmt checks
test-fmt:
test -z "$$(opa fmt -l pkg/rules/rego/*)"
test -z "$$(go run $(OPA_REPO)@$(OPA_VERSION) fmt -l pkg/rules/rego/*)"
test -z "$$(go fmt ./...)"
.PHONY: test-fmt

## Check git commits formatting
test-git:
./scripts/git-check-commits.sh
.PHONY: test-git

## Clean build artifacts
clean:
rm -rf $(BIN_DIR) $(RELEASE_DIR)
.PHONY: clean

## Generate Changelog based on PRs
changelog:
OUTPUT_FILE=$(RELEASE_DIR)/$(CHANGELOG) ./scripts/github-changelog.sh
mkdir -p $(RELEASE_DIR)
git cliff -u --latest -o $(RELEASE_DIR)/$(CHANGELOG)
.PHONY: changelog
77 changes: 77 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.

[changelog]
# changelog header
header = ""
# template for the changelog body
# https://tera.netlify.app/docs
body = """
**Docker Image**: {{ get_env(name='REGISTRY', default='') }}/{{ get_env(name='IMAG_NAME', default='') }}:{{ get_env(name='GITHUB_REF_NAME', default='') }}
### Changelog
{% for group, commits in commits | group_by(attribute="group") %}
\n#### {{ group | striptags | trim | upper_first }}:
{% for commit in commits
| filter(attribute="group")
| sort(attribute="scope") %}
- {{commit.scope}}: \
{{ commit.message }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/doitintl/kube-no-trouble/commit/{{ commit.id }}) by [{{ commit.author.name }}](https://github.com/{{ commit.author.name }}))
{%- endfor -%}
{% endfor %}
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = ""
# postprocessors
postprocessors = [
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
]
[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# filter out the commits that are not conventional
filter_unconventional = false
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"}, # replace issue numbers
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^(refactor|ref)", group = "Internal/Other", scope="ref" },
{ message = "^build", group = "Internal/Other", scope="build" },
{ message = "^chore", group = "Internal/Other", scope="chore" },
{ message = "^ci", group = "Internal/Other", scope="ci" },
{ message = "^dep", group = "Internal/Other", scope="dep" },
{ message = "^doc", group = "Internal/Other", scope="doc" },
{ message = "^feat", group = "Features", scope="feat" },
{ message = "^fix", group = "Fixes", scope="fix" },
{ message = "^perf", group = "Internal/Other", scope="perf" },
{ message = "^style", group = "Internal/Other", scope="style" },
{ message = "^test", group = "Internal/Other", scope="test" },
{ body = ".*security", group = "Internal/Other", scope="sec" },
{ message = "^revert", group = "Internal/Other", scope="revert" },
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = false
# filter out the commits that are not matched by commit parsers
filter_commits = false
# glob pattern for matching git tags
tag_pattern = "^[0-9]+.[0-9]+.[0-9]+$"
# regex for skipping tags
skip_tags = "^nightly-.*"
# regex for ignoring tags
ignore_tags = "^nightly-.*"
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "oldest"
# limit the number of commits included in the changelog.
# limit_commits = 42
11 changes: 1 addition & 10 deletions scripts/alpine-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,12 @@
set -eou pipefail
LC_CTYPE=C

OPA_VERSION="0.22.0"
CHANGELOG_VERSION="1.1.0"

apk add --update --no-cache \
bash \
curl \
git \
git-cliff \
jq \
make \
tar \
xz

wget -q -O "/usr/local/bin/opa" "https://github.com/open-policy-agent/opa/releases/download/v${OPA_VERSION}/opa_linux_amd64"
chmod +x "/usr/local/bin/opa"

wget -q "https://github.com/paultyng/changelog-gen/releases/download/v${CHANGELOG_VERSION}/changelog-gen_Linux_x86_64.tar.gz" -O - | tar -xz
chmod +x changelog-gen
mv changelog-gen /usr/local/bin/changelog-gen
72 changes: 0 additions & 72 deletions scripts/changelog.tmpl

This file was deleted.

21 changes: 0 additions & 21 deletions scripts/git-check-commits.sh

This file was deleted.

21 changes: 0 additions & 21 deletions scripts/github-changelog.sh

This file was deleted.

0 comments on commit 1ae68c6

Please sign in to comment.