Skip to content

Commit

Permalink
Build Go via make (#12)
Browse files Browse the repository at this point in the history
* Build Go via make

* Build Go via make
  • Loading branch information
MaksymAtVgs authored Dec 6, 2021
1 parent eab236b commit 8c1e52b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 41 deletions.
37 changes: 21 additions & 16 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,18 @@
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1

# Define a job to be invoked later in a workflow.
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
jobs:
build:
build-and-test:
working_directory: ~/repo
# Specify the execution environment. You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
# See: https://circleci.com/docs/2.0/configuration-reference/#docker-machine-macos-windows-executor
docker:
- image: circleci/golang:1.15.8
# Add steps to the job
# See: https://circleci.com/docs/2.0/configuration-reference/#steps
steps:
- checkout
- restore_cache:
keys:
- go-mod-v4-{{ checksum "go.sum" }}
- run:
name: Install Dependencies
command: go mod download
name: Run Build
command: make build
- save_cache:
key: go-mod-v4-{{ checksum "go.sum" }}
paths:
Expand All @@ -32,11 +24,24 @@ jobs:
# gotestsum --junitfile /tmp/test-reports/unit-tests.xml
# - store_test_results:
# path: /tmp/test-reports
release:
docker:
- image: cimg/go:1.17
steps:
- checkout
- run: curl -sL https://git.io/goreleaser | bash
- run: goreleaser release --skip-sign

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
sample: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
build:
jobs:
- build-and-test
release:
jobs:
- build
- release:
# Only run this job on git tag pushes
filters:
branches:
ignore: /.*/
tags:
only: /v[0-9]+(\.[0-9]+)*(-.*)*/
29 changes: 4 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,32 +1,11 @@
RELEASE := $(shell git describe --tags $(git rev-list --branches=main --tags --max-count=1))
PRERELEASE := $(shell git describe --tags $(git rev-list --branches=main --tags --max-count=1) | awk 'BEGIN{FS=OFS="."} {$$3+=1} 1')
default:
go build -o ./bin/terraform-provider-vgs_$(RELEASE)

build:
go build -o ./bin/terraform-provider-vgs_$(PRERELEASE)

install-local:
go build -o ~/.terraform.d/plugins/terraform-provider-vgs_$(PRERELEASE)

test:
echo "$(shell sha256sum release/terraform-provider-vgs_v0.1.1_linux_386.zip) 111"

all:
rm -rf ./release && mkdir -p ./release
GOOS=linux GOARCH=amd64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_linux_amd64/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_linux_amd64.zip ./bin/terraform-provider-vgs_$(RELEASE)_linux_amd64
GOOS=linux GOARCH=386 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_linux_386/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_linux_386.zip ./bin/terraform-provider-vgs_$(RELEASE)_linux_386
GOOS=linux GOARCH=arm go build -o ./bin/terraform-provider-vgs_$(RELEASE)_linux_arm/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_linux_arm.zip ./bin/terraform-provider-vgs_$(RELEASE)_linux_arm

GOOS=darwin GOARCH=amd64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_darwin_amd64/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_darwin_amd64.zip ./bin/terraform-provider-vgs_$(RELEASE)_darwin_amd64
GOOS=darwin GOARCH=arm64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_darwin_arm64/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_darwin_arm.zip ./bin/terraform-provider-vgs_$(RELEASE)_darwin_arm64

GOOS=windows GOARCH=amd64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_windows_amd64/terraform-provider-vgs_$(RELEASE).exe && zip -r ./release/terraform-provider-vgs_$(RELEASE)_windows_amd64.zip ./bin/terraform-provider-vgs_$(RELEASE)_windows_amd64
GOOS=windows GOARCH=386 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_windows_386/terraform-provider-vgs_$(RELEASE).exe && zip -r ./release/terraform-provider-vgs_$(RELEASE)_windows_386.zip ./bin/terraform-provider-vgs_$(RELEASE)_windows_386
GOOS=windows GOARCH=arm go build -o ./bin/terraform-provider-vgs_$(RELEASE)_windows_arm/terraform-provider-vgs_$(RELEASE).exe && zip -r ./release/terraform-provider-vgs_$(RELEASE)_windows_arm.zip ./bin/terraform-provider-vgs_$(RELEASE)_windows_arm

GOOS=freebsd GOARCH=amd64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_amd64/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_freebsd_amd64.zip ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_amd64
GOOS=freebsd GOARCH=amd64 go build -o ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_386/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_freebsd_386.zip ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_386
GOOS=freebsd GOARCH=arm go build -o ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_arm/terraform-provider-vgs_$(RELEASE) && zip -r ./release/terraform-provider-vgs_$(RELEASE)_freebsd_arm.zip ./bin/terraform-provider-vgs_$(RELEASE)_freebsd_arm

checksums:
rm -f ./release/terraform-provider-vgs_$(RELEASE)_sha256sums && touch ./release/terraform-provider-vgs_$(RELEASE)_sha256sums
find ./release -type f ! -name '*sha256sums' -exec basename {} \; | xargs -I '{}' bash -c 'echo "$$(sha256sum ./release/{}) {}" >> ./release/terraform-provider-vgs_$(RELEASE)_sha256sums'


0 comments on commit 8c1e52b

Please sign in to comment.