Skip to content

Commit

Permalink
feat: initial release
Browse files Browse the repository at this point in the history
  • Loading branch information
michenriksen committed Jul 7, 2024
0 parents commit 70fe961
Show file tree
Hide file tree
Showing 47 changed files with 2,772 additions and 0 deletions.
19 changes: 19 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# EditorConfig is awesome: https://EditorConfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.go]
indent_style = tab

[*.{md,yaml,yml}]
indent_style = space
indent_size = 2

[Makefile]
indent_style = tab
43 changes: 43 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
name: release
permissions:
contents: write
on:
workflow_dispatch:
inputs:
version:
description: "Release version (e.g., v1.0.0)"
required: true
jobs:
run:
name: Release
runs-on: ubuntu-latest
container:
image: goreleaser/goreleaser:latest
steps:
- name: Install dependencies
run: apk add --no-cache bash ncurses git
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- run: |
git config --global --add safe.directory "$PWD"
git fetch --force --tags
- name: Create release tag
run: |
git config --global user.email "[email protected]"
git config --global user.name "Michael Henriksen"
git tag -a "$VERSION" -m "$VERSION"
env:
VERSION: ${{ github.event.inputs.version }}
- name: Run GoReleaser
run: goreleaser release --clean
env:
VERSION: ${{ github.event.inputs.version }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Notify Go proxy about new release
run: go list -m "github.com/michenriksen/chart@${VERSION}" || true
env:
GOPROXY: proxy.golang.org
VERSION: ${{ github.event.inputs.version }}
54 changes: 54 additions & 0 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: verify
permissions:
contents: read
on:
push:
branches: [main]
paths:
- "go.mod"
- "**/*.go"
pull_request:
branches: [main]
paths:
- "go.mod"
- "**/*.go"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
TERM: xterm-256color
jobs:
verify:
name: verify
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
fail-fast: true
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
cache-dependency-path: "go.sum"
go-version: "1.22"
- name: Vet
run: go vet ./...
- name: Tidy
run: |
go mod tidy
if ! git diff --exit-code --quiet; then
echo "go mod is not tidy"
exit 1
fi
- name: Verify dependencies
run: go mod verify
- name: Test
run: go test -shuffle=on -cover -covermode=atomic -coverprofile=cover.out -race ./...
- name: Lint
uses: golangci/golangci-lint-action@v6
with:
version: v1.59
118 changes: 118 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Created by https://www.toptal.com/developers/gitignore/api/go,vim,visualstudiocode,macos,linux
# Edit at https://www.toptal.com/developers/gitignore?templates=go,vim,visualstudiocode,macos,linux

### Go ###
# If you prefer the allow list template instead of the deny list, see community template:
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
#
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Dependency directories (remove the comment below to include it)
# vendor/

# Go workspace file
go.work

### Linux ###
*~

# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*

# KDE directory preferences
.directory

# Linux trash folder which might appear on any partition or disk
.Trash-*

# .nfs files are created when an open file is removed but is still being accessed
.nfs*

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two \r
Icon


# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### macOS Patch ###
# iCloud generated files
*.icloud

### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]

# Session
Session.vim
Sessionx.vim

# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

# Built Visual Studio Code Extensions
*.vsix

### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide

# End of https://www.toptal.com/developers/gitignore/api/go,vim,visualstudiocode,macos,linux

.env
/dist
/out
Loading

0 comments on commit 70fe961

Please sign in to comment.