Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jidicula authored Apr 12, 2023
0 parents commit f4e63a7
Show file tree
Hide file tree
Showing 12 changed files with 321 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: jidicula
2 changes: 2 additions & 0 deletions .github/RELEASE-TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Announcements
* First announcement
26 changes: 26 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "saturday"
time: "06:00"
timezone: "America/Toronto"
reviewers:
- "jidicula"
open-pull-requests-limit: 99
commit-message:
prefix: "build: "
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: weekly
day: "saturday"
time: "06:00"
timezone: "America/Toronto"
reviewers:
- "jidicula"
commit-message:
prefix: "build: "
107 changes: 107 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
on:
push:
branches: [main]
pull_request:
branches: [main]

name: Build

defaults:
run:
shell: bash

jobs:
lint:
name: Lint files
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
test:
name: Run tests
runs-on: 'ubuntu-latest'
needs: lint
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- run: go test -v -cover ./...
build:
name: Build binary
runs-on: 'ubuntu-latest'
needs: test
strategy:
matrix:
goosarch:
- 'aix/ppc64'
# - 'android/386'
- 'android/amd64'
# - 'android/arm'
- 'android/arm64'
- 'darwin/amd64'
- 'darwin/arm64'
- 'dragonfly/amd64'
- 'freebsd/386'
- 'freebsd/amd64'
- 'freebsd/arm'
- 'freebsd/arm64'
- 'illumos/amd64'
# - 'ios/amd64'
# - 'ios/arm64'
- 'js/wasm'
- 'linux/386'
- 'linux/amd64'
- 'linux/arm'
- 'linux/arm64'
- 'linux/mips'
- 'linux/mips64'
- 'linux/mips64le'
- 'linux/mipsle'
- 'linux/ppc64'
- 'linux/ppc64le'
- 'linux/riscv64'
- 'linux/s390x'
- 'netbsd/386'
- 'netbsd/amd64'
- 'netbsd/arm'
- 'netbsd/arm64'
- 'openbsd/386'
- 'openbsd/amd64'
- 'openbsd/arm'
- 'openbsd/arm64'
- 'openbsd/mips64'
- 'plan9/386'
- 'plan9/amd64'
- 'plan9/arm'
- 'solaris/amd64'
- 'windows/386'
- 'windows/amd64'
- 'windows/arm'
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- name: Get OS and arch info
run: |
GOOSARCH=${{matrix.goosarch}}
GOOS=${GOOSARCH%/*}
GOARCH=${GOOSARCH#*/}
BINARY_NAME=${{github.repository}}-$GOOS-$GOARCH
echo "BINARY_NAME=$BINARY_NAME" >> $GITHUB_ENV
echo "GOOS=$GOOS" >> $GITHUB_ENV
echo "GOARCH=$GOARCH" >> $GITHUB_ENV
- name: Build
run: |
go build -o "$BINARY_NAME" -v
15 changes: 15 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
on:
release:
types:
- published

name: Update Go Module Index

jobs:
bump-index:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Ping endpoint
run: curl "https://proxy.golang.org/github.com/jidicula/template-go/@v/$(git describe HEAD --tags --abbrev=0).info"
117 changes: 117 additions & 0 deletions .github/workflows/release-draft.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

name: Latest Release

defaults:
run:
shell: bash

jobs:
lint:
name: Lint files
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
test:
name: Run tests
runs-on: 'ubuntu-latest'
needs: lint
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- run: go test -v -cover ./...
release:
name: Create Release
runs-on: 'ubuntu-latest'
needs: test
strategy:
matrix:
goosarch:
- 'aix/ppc64'
# - 'android/386'
- 'android/amd64'
# - 'android/arm'
- 'android/arm64'
- 'darwin/amd64'
- 'darwin/arm64'
- 'dragonfly/amd64'
- 'freebsd/386'
- 'freebsd/amd64'
- 'freebsd/arm'
- 'freebsd/arm64'
- 'illumos/amd64'
# - 'ios/amd64'
# - 'ios/arm64'
- 'js/wasm'
- 'linux/386'
- 'linux/amd64'
- 'linux/arm'
- 'linux/arm64'
- 'linux/mips'
- 'linux/mips64'
- 'linux/mips64le'
- 'linux/mipsle'
- 'linux/ppc64'
- 'linux/ppc64le'
- 'linux/riscv64'
- 'linux/s390x'
- 'netbsd/386'
- 'netbsd/amd64'
- 'netbsd/arm'
- 'netbsd/arm64'
- 'openbsd/386'
- 'openbsd/amd64'
- 'openbsd/arm'
- 'openbsd/arm64'
- 'openbsd/mips64'
- 'plan9/386'
- 'plan9/amd64'
- 'plan9/arm'
- 'solaris/amd64'
- 'windows/386'
- 'windows/amd64'
- 'windows/arm'
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v4
with:
go-version: '1.17'
check-latest: true
- name: Get OS and arch info
run: |
GOOSARCH=${{matrix.goosarch}}
GOOS=${GOOSARCH%/*}
GOARCH=${GOOSARCH#*/}
BINARY_NAME=${{github.repository}}-$GOOS-$GOARCH
echo "BINARY_NAME=$BINARY_NAME" >> $GITHUB_ENV
echo "GOOS=$GOOS" >> $GITHUB_ENV
echo "GOARCH=$GOARCH" >> $GITHUB_ENV
- name: Build
run: |
go build -o "$BINARY_NAME" -v
- name: Release with Notes
uses: softprops/action-gh-release@v1
with:
body_path: ".github/RELEASE-TEMPLATE.md"
draft: true
files: ${{env.BINARY_NAME}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# 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/
9 changes: 9 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
linters-settings:
goimports:
simplify: true
govet:
check-shadowing: true

linters:
enable:
- goimports
14 changes: 14 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-merge-conflict
- id: mixed-line-ending
- id: check-added-large-files
- repo: https://github.com/golangci/golangci-lint
rev: v1.38.0
hooks:
- id: golangci-lint
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[![Build](https://github.com/jidicula/template-go/actions/workflows/build.yml/badge.svg)](https://github.com/jidicula/template-go/actions/workflows/build.yml) [![Latest Release](https://github.com/jidicula/template-go/actions/workflows/release-draft.yml/badge.svg)](https://github.com/jidicula/template-go/actions/workflows/release-draft.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/jidicula/template-go)](https://goreportcard.com/report/github.com/jidicula/template-go) [![Go Reference](https://pkg.go.dev/badge/github.com/jidicula/template-go.svg)](https://pkg.go.dev/github.com/jidicula/template-go)

# template-go
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module github.com/jidicula/template-go

go 1.17
7 changes: 7 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package main

import "fmt"

func main() {
fmt.Println("Hello, world!")
}

0 comments on commit f4e63a7

Please sign in to comment.