From 797a6b0429bd4b331c72a47da4a98c02514a033e Mon Sep 17 00:00:00 2001 From: Jason Kulatunga Date: Sun, 26 Jun 2022 15:35:37 -0700 Subject: [PATCH] make sure we dont depend on tests for building binaries. empty commit. fix checkout. fix checkout. fix zig. fix zig. fix zig. fix zig. fix zig. fix zig. fix zig. fix zig. fix zig. fix zig. --- .github/workflows/ci.yaml | 35 ++++++++++++++++++++++------------- Makefile | 24 +++++++++++++++++++++--- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e924dd5..5cfadcd 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -23,7 +23,7 @@ jobs: - 8086:8086 env: PROJECT_PATH: /go/src/github.com/analogj/scrutiny - CGO_ENABLED: 1 + STATIC: true steps: - name: Git run: | @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@v2 - name: Test run: | - make clean binary-test-coverage + make binary-clean binary-test-coverage - name: Generate coverage report uses: codecov/codecov-action@v2 with: @@ -44,31 +44,40 @@ jobs: verbose: true build: name: Build ${{ matrix.cfg.goos }}/${{ matrix.cfg.goarch }} - needs: release runs-on: ${{ matrix.cfg.on }} env: GOOS: ${{ matrix.cfg.goos }} GOARCH: ${{ matrix.cfg.goarch }} GOARM: ${{ matrix.cfg.goarm }} + ZIG_CROSS_COMPILE_TARGET: ${{ matrix.cfg.zig_cc_target }} + STATIC: true strategy: matrix: cfg: - { on: ubuntu-latest, goos: linux, goarch: amd64 } - - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 5 } - - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 6 } - - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 7 } - - { on: ubuntu-latest, goos: linux, goarch: arm64 } + - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 5, zig_cc_target: armv5-linux } + - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 6, zig_cc_target: armv6-linux } + - { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 7, zig_cc_target: armv7-linux } + - { on: ubuntu-latest, goos: linux, goarch: arm64, zig_cc_target: aarch64v8-linux } - { on: macos-latest, goos: darwin, goarch: amd64 } - - { on: macos-latest, goos: darwin, goarch: arm64 } - - { on: macos-latest, goos: freebsd, goarch: amd64 } - - { on: macos-latest, goos: freebsd, goarch: arm64 } - - { on: windows-latest, goos: windows, goarch: amd64 } - - { on: windows-latest, goos: windows, goarch: arm64 } + - { on: macos-latest, goos: darwin, goarch: arm64, zig_cc_target: aarch64v8-macos } + - { on: macos-latest, goos: freebsd, goarch: amd64, zig_cc_target: x86_64-freebsd } + - { on: macos-latest, goos: freebsd, goarch: arm64, zig_cc_target: aarch64v8-freebsd } + - { on: windows-latest, goos: windows, goarch: amd64, zig_cc_target: x86_64-windows-gnu } + - { on: windows-latest, goos: windows, goarch: arm64, zig_cc_target: aarch64v8-windows-gnu } steps: + - name: Checkout + uses: actions/checkout@v2 + - uses: goto-bus-stop/setup-zig@v1 + with: + version: v0.9 - name: Build Binaries run: | - make clean binary-all + zig version + which zig + echo $PATH + make binary-clean binary-all - name: Archive uses: actions/upload-artifact@v2 with: diff --git a/Makefile b/Makefile index e7f80c4..df3a9c5 100644 --- a/Makefile +++ b/Makefile @@ -9,9 +9,24 @@ GO_WORKSPACE ?= /go/src/github.com/analogj/scrutiny COLLECTOR_BINARY_NAME = scrutiny-collector-metrics WEB_BINARY_NAME = scrutiny-web LD_FLAGS = + +WEB_STATIC_TAGS = +COLLECTOR_STATIC_TAGS = + + +# enable to build static binaries. ifdef STATIC LD_FLAGS := $(LD_FLAGS) -extldflags=-static +WEB_STATIC_TAGS := $(WEB_STATIC_TAGS) -tags "static netgo sqlite_omit_load_extension" +COLLECTOR_STATIC_TAGS := $(COLLECTOR_STATIC_TAGS) -tags "static netgo" endif +#enable to do cross compilation (build windows/mac binaries on linux) +ifdef ZIG_CROSS_COMPILE_TARGET +ZIG_BINARY != which zig +export CC = $(ZIG_BINARY) cc -target $(ZIG_CROSS_COMPILE_TARGET) +export CXX = $(ZIG_BINARY) cc -target $(ZIG_CROSS_COMPILE_TARGET) +endif + ifdef GOOS COLLECTOR_BINARY_NAME := $(COLLECTOR_BINARY_NAME)-$(GOOS) WEB_BINARY_NAME := $(WEB_BINARY_NAME)-$(GOOS) @@ -38,7 +53,8 @@ endif all: binary-all .PHONY: binary-all -binary-all: binary-web binary-collector binary-frontend +binary-all: binary-collector binary-web + @echo "building all" .PHONY: binary-clean binary-clean: @@ -46,6 +62,8 @@ binary-clean: .PHONY: binary-dep binary-dep: + env + go env go mod vendor .PHONY: binary-test @@ -58,7 +76,7 @@ binary-test-coverage: binary-dep .PHONY: binary-collector binary-collector: binary-dep - go build -ldflags "$(LD_FLAGS)" -o $(COLLECTOR_BINARY_NAME) -tags "static netgo" ./collector/cmd/collector-metrics/ + go build -ldflags "$(LD_FLAGS)" -o $(COLLECTOR_BINARY_NAME) $(COLLECTOR_STATIC_TAGS) ./collector/cmd/collector-metrics/ ifneq ($(OS),Windows_NT) chmod +x $(COLLECTOR_BINARY_NAME) file $(COLLECTOR_BINARY_NAME) || true @@ -68,7 +86,7 @@ endif .PHONY: binary-web binary-web: binary-dep - go build -ldflags "$(LD_FLAGS)" -o $(WEB_BINARY_NAME) -tags "static netgo sqlite_omit_load_extension" ./webapp/backend/cmd/scrutiny/ + go build -ldflags "$(LD_FLAGS)" -o $(WEB_BINARY_NAME) $(WEB_STATIC_TAGS) ./webapp/backend/cmd/scrutiny/ ifneq ($(OS),Windows_NT) chmod +x $(WEB_BINARY_NAME) file $(WEB_BINARY_NAME) || true