8 Commits

6 changed files with 135 additions and 86 deletions

View File

@@ -1,57 +0,0 @@
version: 2
jobs:
build:
docker:
- image: circleci/golang:1.16
working_directory: /go/src/github.com/jimeh/casecmp
steps:
- checkout
- run:
name: Install dependencies
command: go mod download
- run:
name: Build binary
command: make
- run:
name: Start service
command: ./bin/casecmp --port=8080
background: true
- run:
name: Validate service is working
command: |
curl --retry 10 --retry-delay 1 --retry-connrefused \
http://localhost:8080/
release:
docker:
- image: circleci/golang:1.16
working_directory: /go/src/github.com/jimeh/casecmp
steps:
- checkout
- run: curl -sL https://git.io/goreleaser | bash
workflows:
version: 2
build:
jobs:
- build:
filters:
branches:
only: /.*/
tags:
ignore: /^v[0-9]+(\.[0-9]+)*/
build-and-release:
jobs:
- build:
filters:
branches:
ignore: /.*/
tags:
only: /^v[0-9]+(\.[0-9]+)*/
- release:
requires:
- build
filters:
branches:
ignore: /.*/
tags:
only: /^v[0-9]+(\.[0-9]+)*/

48
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
---
name: CI
on: [push]
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: 1.16
- name: Install dependencies
run: go mod download
- name: Build binary
run: make
- name: Run and make request
run: |
./bin/casecmp --port=8080 &
curl --silent --retry 10 --retry-delay 1 --retry-connrefused \
http://localhost:8080/
release:
name: Release
runs-on: ubuntu-latest
needs: [build]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Docker Login
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@v2
with:
go-version: 1.16
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -10,17 +10,18 @@ builds:
ldflags: ldflags:
- "-s -w -X main.version={{ .Version }} -X main.commit={{ .Commit }}" - "-s -w -X main.version={{ .Version }} -X main.commit={{ .Commit }}"
goos: goos:
- darwin - "darwin"
- freebsd - "freebsd"
- linux - "linux"
- windows - "windows"
goarch: goarch:
- amd64 - "amd64"
- 386 - "386"
- arm - "arm"
- "arm64"
goarm: goarm:
- 6 - "6"
- 7 - "7"
archives: archives:
- format: tar.gz - format: tar.gz
@@ -30,12 +31,6 @@ archives:
format_overrides: format_overrides:
- goos: windows - goos: windows
format: zip format: zip
replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
checksum: checksum:
name_template: "checksums.txt" name_template: "checksums.txt"
@@ -47,3 +42,68 @@ changelog:
exclude: exclude:
- "^docs:" - "^docs:"
- "^test:" - "^test:"
dockers:
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-amd64"
- "ghcr.io/jimeh/casecmp:latest-amd64"
dockerfile: Dockerfile
use: buildx
goos: linux
goarch: amd64
build_flag_templates:
- "--platform=linux/amd64"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-386"
- "ghcr.io/jimeh/casecmp:latest-386"
dockerfile: Dockerfile
use: buildx
goos: linux
goarch: "386"
build_flag_templates:
- "--platform=linux/386"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-arm64"
- "ghcr.io/jimeh/casecmp:latest-arm64"
use: buildx
goos: linux
goarch: arm64
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm64"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-armv6"
- "ghcr.io/jimeh/casecmp:latest-armv6"
use: buildx
goos: linux
goarch: arm
goarm: "6"
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm/v6"
- image_templates:
- "ghcr.io/jimeh/casecmp:{{ .Version }}-armv7"
- "ghcr.io/jimeh/casecmp:latest-armv7"
use: buildx
goos: linux
goarch: arm
goarm: "7"
dockerfile: Dockerfile
build_flag_templates:
- "--platform=linux/arm/v7"
docker_manifests:
- name_template: ghcr.io/jimeh/casecmp:{{ .Version }}
image_templates:
- ghcr.io/jimeh/casecmp:{{ .Version }}-amd64
- ghcr.io/jimeh/casecmp:{{ .Version }}-386
- ghcr.io/jimeh/casecmp:{{ .Version }}-arm64
- ghcr.io/jimeh/casecmp:{{ .Version }}-armv6
- ghcr.io/jimeh/casecmp:{{ .Version }}-armv7
- name_template: ghcr.io/jimeh/casecmp:latest
image_templates:
- ghcr.io/jimeh/casecmp:latest-amd64
- ghcr.io/jimeh/casecmp:latest-386
- ghcr.io/jimeh/casecmp:latest-arm64
- ghcr.io/jimeh/casecmp:latest-armv6
- ghcr.io/jimeh/casecmp:latest-armv7

10
CHANGELOG.md Normal file
View File

@@ -0,0 +1,10 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [1.3.0](https://github.com/jimeh/casecmp/compare/v1.2.3...v1.3.0) (2022-02-13)
### Features
* **release:** setup for publishing docker images to ghcr ([1816e93](https://github.com/jimeh/casecmp/commit/1816e93170bb725f8da073b91070a981dd039fad))

View File

@@ -1,17 +1,5 @@
FROM golang:1.16-alpine as builder
RUN apk add --no-cache \
git
WORKDIR /app
COPY . /app
RUN env CGO_ENABLED=0 \
go build -a -o /casecmp -ldflags "-s -w \
-X main.version=$(cat VERSION) \
-X main.commit=$(git show --format='%h' --no-patch) \
-X main.date=$(date +%Y-%m-%dT%T%z)"
FROM scratch FROM scratch
COPY --from=builder /casecmp / COPY ./casecmp /
ENV PORT 8080 ENV PORT 8080
EXPOSE 8080 EXPOSE 8080
WORKDIR / WORKDIR /

View File

@@ -1 +1 @@
1.2.1 1.2.3