Docker + goreleaser (#729)
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
name: release
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v2.*"
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
args:
|
||||||
|
description: "Extra arguments to pass goreleaser"
|
||||||
|
default: ""
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: 1.17
|
||||||
|
- name: Run GoReleaser
|
||||||
|
uses: goreleaser/goreleaser-action@v2
|
||||||
|
with:
|
||||||
|
distribution: goreleaser
|
||||||
|
version: latest
|
||||||
|
args: release ${{ inputs.args }} --rm-dist
|
||||||
@@ -17,9 +17,16 @@ jobs:
|
|||||||
name: ${{ matrix.go }}/${{ matrix.os }}
|
name: ${{ matrix.go }}/${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@master
|
- uses: actions/checkout@master
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
- name: Setup go ${{ matrix.go }}
|
- name: Setup go ${{ matrix.go }}
|
||||||
uses: actions/setup-go@master
|
uses: actions/setup-go@master
|
||||||
with:
|
with:
|
||||||
go-version: ${{ matrix.go }}
|
go-version: ${{ matrix.go }}
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: go test -race ./...
|
run: go test -race ./...
|
||||||
|
release-check:
|
||||||
|
if: ${{ github.ref != 'refs/heads/v2' }}
|
||||||
|
uses: pelletier/go-toml/.github/workflows/release.yml@docker
|
||||||
|
with:
|
||||||
|
args: --snapshot
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ fuzz/
|
|||||||
cmd/tomll/tomll
|
cmd/tomll/tomll
|
||||||
cmd/tomljson/tomljson
|
cmd/tomljson/tomljson
|
||||||
cmd/tomltestgen/tomltestgen
|
cmd/tomltestgen/tomltestgen
|
||||||
|
dist
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
before:
|
||||||
|
hooks:
|
||||||
|
- go mod tidy
|
||||||
|
- go fmt ./...
|
||||||
|
- go test ./...
|
||||||
|
builds:
|
||||||
|
- id: tomll
|
||||||
|
main: ./cmd/tomll
|
||||||
|
binary: tomll
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
flags:
|
||||||
|
- -trimpath
|
||||||
|
ldflags:
|
||||||
|
- -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}}
|
||||||
|
mod_timestamp: '{{ .CommitTimestamp }}'
|
||||||
|
targets:
|
||||||
|
- linux_amd64
|
||||||
|
- windows_amd64
|
||||||
|
- darwin_amd64
|
||||||
|
- darwin_arm64
|
||||||
|
- id: tomljson
|
||||||
|
main: ./cmd/tomljson
|
||||||
|
binary: tomljson
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
flags:
|
||||||
|
- -trimpath
|
||||||
|
ldflags:
|
||||||
|
- -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}}
|
||||||
|
mod_timestamp: '{{ .CommitTimestamp }}'
|
||||||
|
targets:
|
||||||
|
- linux_amd64
|
||||||
|
- windows_amd64
|
||||||
|
- darwin_amd64
|
||||||
|
- darwin_arm64
|
||||||
|
- id: jsontoml
|
||||||
|
main: ./cmd/jsontoml
|
||||||
|
binary: jsontoml
|
||||||
|
env:
|
||||||
|
- CGO_ENABLED=0
|
||||||
|
flags:
|
||||||
|
- -trimpath
|
||||||
|
ldflags:
|
||||||
|
- -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}}
|
||||||
|
mod_timestamp: '{{ .CommitTimestamp }}'
|
||||||
|
targets:
|
||||||
|
- linux_amd64
|
||||||
|
- windows_amd64
|
||||||
|
- darwin_amd64
|
||||||
|
- darwin_arm64
|
||||||
|
universal_binaries:
|
||||||
|
- id: tomll
|
||||||
|
replace: true
|
||||||
|
name_template: tomll
|
||||||
|
- id: tomljson
|
||||||
|
replace: true
|
||||||
|
name_template: tomljson
|
||||||
|
- id: jsontoml
|
||||||
|
replace: true
|
||||||
|
name_template: jsontoml
|
||||||
|
archives:
|
||||||
|
- id: jsontoml
|
||||||
|
format: tar.xz
|
||||||
|
builds:
|
||||||
|
- jsontoml
|
||||||
|
files:
|
||||||
|
- none*
|
||||||
|
name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}"
|
||||||
|
- id: tomljson
|
||||||
|
format: tar.xz
|
||||||
|
builds:
|
||||||
|
- tomljson
|
||||||
|
files:
|
||||||
|
- none*
|
||||||
|
name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}"
|
||||||
|
- id: tomll
|
||||||
|
format: tar.xz
|
||||||
|
builds:
|
||||||
|
- tomll
|
||||||
|
files:
|
||||||
|
- none*
|
||||||
|
name_template: "{{ .Binary }}_{{.Version}}_{{ .Os }}_{{ .Arch }}"
|
||||||
|
dockers:
|
||||||
|
- id: tools
|
||||||
|
goos: linux
|
||||||
|
goarch: amd64
|
||||||
|
ids:
|
||||||
|
- jsontoml
|
||||||
|
- tomljson
|
||||||
|
- tomll
|
||||||
|
image_templates:
|
||||||
|
- "grc.io/pelletier/go-toml:latest"
|
||||||
|
- "grc.io/pelletier/go-toml:{{ .Tag }}"
|
||||||
|
- "grc.io/pelletier/go-toml:v{{ .Major }}"
|
||||||
|
skip_push: false
|
||||||
|
checksum:
|
||||||
|
name_template: 'sha256sums.txt'
|
||||||
|
snapshot:
|
||||||
|
name_template: "{{ incpatch .Version }}-next"
|
||||||
|
release:
|
||||||
|
github:
|
||||||
|
owner: pelletier
|
||||||
|
name: go-toml
|
||||||
|
draft: true
|
||||||
|
prerelease: auto
|
||||||
|
mode: replace
|
||||||
|
changelog:
|
||||||
|
use: github-native
|
||||||
|
announce:
|
||||||
|
skip: true
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
FROM scratch
|
||||||
|
ENV PATH "$PATH:/bin"
|
||||||
|
COPY tomll /bin/tomll
|
||||||
|
COPY tomljson /bin/tomljson
|
||||||
|
COPY jsontoml /bin/jsontoml
|
||||||
Reference in New Issue
Block a user