From a59ed2a51296c7e5f34f6b34c420db149fb58dc2 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 16:39:36 -0400 Subject: [PATCH 1/9] Update ci.yml Fix CI workflow branch --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a76b964..1e29764 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ env: on: pull_request: push: - branches: [main] + branches: [develop] jobs: quicktests: From 3f09a1827809dee663f771da82d8be3ecd91a070 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 16:48:01 -0400 Subject: [PATCH 2/9] Cleanup Makefile Fix Windows recipes, simplify --- Makefile | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 3284a83..765cfe8 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ UNZIP_DEST := deps REAL_DEST := $(shell realpath .)/$(UNZIP_DEST) DOWNLOAD_DEST := $(UNZIP_DEST)/$(DEPLIBNAME).tar.gz STATICLDFLAGS := -L$(UNZIP_DEST) -led25519_bip32 -lspacemesh_remote_wallet +EXTRACT = tar -xzf # Detect operating system ifeq ($(OS),Windows_NT) @@ -67,22 +68,9 @@ endif ifeq ($(SYSTEM),windows) # Windows settings - # TODO: this is probably unnecessary, most Windows dev environments (including GHA) - # should support bash - RM = del /Q /F - RMDIR = rmdir /S /Q - MKDIR = mkdir - - FN = $(DEPLIBNAME)_windows-amd64.tar.gz - DOWNLOAD_DEST = $(UNZIP_DEST)/$(DEPLIBNAME).zip - EXTRACT = 7z x -y + PLATFORM = windows-amd64 else # Linux and macOS settings - RM = rm -f - RMDIR = rm -rf - MKDIR = mkdir -p - EXTRACT = tar -xzf - ifeq ($(GOARCH),amd64) PLATFORM = $(MACHINE)-amd64 else ifeq ($(GOARCH),arm64) @@ -90,14 +78,14 @@ else else $(error Unknown processor architecture: $(GOARCH)) endif - FN = $(DEPLIBNAME)_$(PLATFORM).tar.gz endif +FN = $(DEPLIBNAME)_$(PLATFORM).tar.gz $(UNZIP_DEST): $(DOWNLOAD_DEST) cd $(UNZIP_DEST) && $(EXTRACT) ../$(DOWNLOAD_DEST) $(DOWNLOAD_DEST): - $(MKDIR) $(UNZIP_DEST) + mkdir -p $(UNZIP_DEST) curl -sSfL $(DEPLOC)/v$(DEPTAG)/$(FN) -o $(DOWNLOAD_DEST) .PHONY: install @@ -143,7 +131,7 @@ test-fmt: git diff --exit-code || (git --no-pager diff && git checkout . && exit 1) .PHONY: lint -lint: +lint: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ CGO_LDFLAGS="-L$(REAL_DEST)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ @@ -151,14 +139,14 @@ lint: # Auto-fixes golangci-lint issues where possible. .PHONY: lint-fix -lint-fix: +lint-fix: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ CGO_LDFLAGS="-L$(REAL_DEST)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ ./bin/golangci-lint run --config .golangci.yml --fix .PHONY: lint-github-action -lint-github-action: +lint-github-action: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ CGO_LDFLAGS="-L$(REAL_DEST)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ @@ -172,5 +160,4 @@ staticcheck: $(UNZIP_DEST) staticcheck ./... clean: - $(RM) $(DOWNLOAD_DEST) - $(RMDIR) $(UNZIP_DEST) + rm -rf $(UNZIP_DEST) From 2710b44fd36c17dd1d037e73a1fe6efbb55776f2 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 16:51:44 -0400 Subject: [PATCH 3/9] Temporarily enable release workflow to test --- .github/workflows/release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5025696..427e75a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,15 +3,15 @@ name: Build and Release env: go-version: "1.19" -on: - release: - types: [created] +on: push +# release: +# types: [created] jobs: release: strategy: matrix: - # build and publish in parallel: linux/amd64, linux/arm64, windows/amd64, darwin/amd64, darwin/arm64 + # build and publish in parallel include: - image: macos-latest name: macos-amd64 @@ -47,7 +47,6 @@ jobs: run: make build - name: Prepare files shell: bash - # if: ${{ !contains(matrix.name, 'windows') }} run: | mkdir artifacts mv LICENSE README.md ${{ env.BINARY_NAME }} artifacts @@ -58,3 +57,4 @@ jobs: uses: softprops/action-gh-release@v1 with: files: ${{ env.ARTIFACT_NAME }} + tag_name: v1.0.5 From c766fbf97a72eb4096cd1d79e16d1057b4a0e077 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 17:47:32 -0400 Subject: [PATCH 4/9] Update linux required packages for build --- .github/workflows/release.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 427e75a..96b1b6a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,13 +36,10 @@ jobs: uses: actions/setup-go@v4 with: go-version: ${{ env.go-version }} - - name: Install musl - # only run on GH-hosted runner; self-hosted runner already has the package + - name: Install required packages + # only run on GH-hosted runner; self-hosted runner already has these if: matrix.name == 'linux-amd64' - uses: awalsh128/cache-apt-pkgs-action@v1 - with: - packages: musl-tools # provides musl-gcc - version: 1.0 + run: sudo apt-get install -y libudev-dev - name: Build run: make build - name: Prepare files From 56660229b9d6a46add8d49550677fa8db20f9d79 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 20:58:34 -0400 Subject: [PATCH 5/9] Update macOS build recipe --- Makefile | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 765cfe8..a080b5c 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,9 @@ DEPLOC := https://github.com/spacemeshos/$(DEPLIBNAME)/releases/download UNZIP_DEST := deps REAL_DEST := $(shell realpath .)/$(UNZIP_DEST) DOWNLOAD_DEST := $(UNZIP_DEST)/$(DEPLIBNAME).tar.gz + +LINKLIBS := -L$(REAL_DEST) +CGO_LDFLAGS := $(LINKLIBS) STATICLDFLAGS := -L$(UNZIP_DEST) -led25519_bip32 -lspacemesh_remote_wallet EXTRACT = tar -xzf @@ -51,17 +54,18 @@ ifeq ($(GOOS),linux) # Linux specific settings # We statically link our own libraries and dynamically link other required libraries - LDFLAGS = -linkmode external -extldflags "-Wl,-Bstatic $(STATICLDFLAGS) -Wl,-Bdynamic -ludev -lm" + LDFLAGS = -ldflags '-linkmode external -extldflags "-Wl,-Bstatic $(STATICLDFLAGS) -Wl,-Bdynamic -ludev -lm"' else ifeq ($(GOOS),darwin) MACHINE = macos # macOS specific settings - # dynamic build using default toolchain - LDFLAGS = -extldflags "$(STATICLDFLAGS)" + # statically link our libs, dynamic build using default toolchain + CGO_LDFLAGS = $(LINKLIBS) $(REAL_DEST)/libed25519_bip32.a $(REAL_DEST)/libspacemesh_remote_wallet.a -framework CoreFoundation -framework IOKit -framework AppKit + LDFLAGS = else ifeq ($(GOOS),windows) # static build using default toolchain # add a few extra required libs - LDFLAGS = -linkmode external -extldflags "-static $(STATICLDFLAGS) -lws2_32 -luserenv -lbcrypt" + LDFLAGS = -ldflags '-linkmode external -extldflags "-static $(STATICLDFLAGS) -lws2_32 -luserenv -lbcrypt"' else $(error Unknown operating system: $(GOOS)) endif @@ -102,16 +106,16 @@ tidy: .PHONY: build build: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ GOOS=$(GOOS) \ GOARCH=$(GOARCH) \ CGO_ENABLED=1 \ - go build -ldflags '$(LDFLAGS)' + go build $(LDFLAGS) .PHONY: test test: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ go test -v -count 1 -ldflags "-extldflags \"$(STATICLDFLAGS)\"" ./... @@ -133,7 +137,7 @@ test-fmt: .PHONY: lint lint: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ ./bin/golangci-lint run --config .golangci.yml @@ -141,21 +145,21 @@ lint: $(UNZIP_DEST) .PHONY: lint-fix lint-fix: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ ./bin/golangci-lint run --config .golangci.yml --fix .PHONY: lint-github-action lint-github-action: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ ./bin/golangci-lint run --config .golangci.yml --out-format=github-actions .PHONY: staticcheck staticcheck: $(UNZIP_DEST) CGO_CFLAGS="-I$(REAL_DEST)" \ - CGO_LDFLAGS="-L$(REAL_DEST)" \ + CGO_LDFLAGS="$(CGO_LDFLAGS)" \ LD_LIBRARY_PATH=$(REAL_DEST) \ staticcheck ./... From d25a7d4e4fd2735924f917cd6917b8835c2cd833 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 21:06:23 -0400 Subject: [PATCH 6/9] Update smkeys version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 50a3f88..a0ba9d8 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.18 require ( github.com/btcsuite/btcutil v1.0.2 github.com/jedib0t/go-pretty/v6 v6.4.6 - github.com/spacemeshos/smkeys v1.0.3 + github.com/spacemeshos/smkeys v1.0.4 github.com/stretchr/testify v1.8.2 ) diff --git a/go.sum b/go.sum index f30086c..9c4337d 100644 --- a/go.sum +++ b/go.sum @@ -185,8 +185,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spacemeshos/smkeys v1.0.3 h1:v1O8NgRtSTCMBClvBM/MqxWJ35moKYURadFDwZRQki4= -github.com/spacemeshos/smkeys v1.0.3/go.mod h1:gj9yv0Zek5D9p6zWmVV/2d0WdhPwyKXDMQm2MpmxIow= +github.com/spacemeshos/smkeys v1.0.4 h1:M4A2tO2WSbtaVgmLWMgRNh+gmFPDjtVMkSMBO02GMQo= +github.com/spacemeshos/smkeys v1.0.4/go.mod h1:gj9yv0Zek5D9p6zWmVV/2d0WdhPwyKXDMQm2MpmxIow= github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= From 7da44d71a4e81dcef67d8884d24f5143185ab6ff Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Sat, 13 May 2023 21:24:08 -0400 Subject: [PATCH 7/9] Make makefile recipe more idiomatic realpath -> $PWD --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a080b5c..e14571e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ DEPTAG := 0.0.1 DEPLIBNAME := spacemesh-sdk DEPLOC := https://github.com/spacemeshos/$(DEPLIBNAME)/releases/download UNZIP_DEST := deps -REAL_DEST := $(shell realpath .)/$(UNZIP_DEST) +REAL_DEST := $(PWD)/$(UNZIP_DEST) DOWNLOAD_DEST := $(UNZIP_DEST)/$(DEPLIBNAME).tar.gz LINKLIBS := -L$(REAL_DEST) From 389b6c922b71df48795294c855e7fe6e57a048e4 Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Mon, 15 May 2023 12:51:19 -0400 Subject: [PATCH 8/9] Try CURDIR instead of CWD for Windows --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e14571e..cb1d909 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ DEPTAG := 0.0.1 DEPLIBNAME := spacemesh-sdk DEPLOC := https://github.com/spacemeshos/$(DEPLIBNAME)/releases/download UNZIP_DEST := deps -REAL_DEST := $(PWD)/$(UNZIP_DEST) +REAL_DEST := $(CURDIR)/$(UNZIP_DEST) DOWNLOAD_DEST := $(UNZIP_DEST)/$(DEPLIBNAME).tar.gz LINKLIBS := -L$(REAL_DEST) From c2f255812bf52569aac1006f72f4089a29fe9dfa Mon Sep 17 00:00:00 2001 From: Lane Rettig Date: Mon, 15 May 2023 13:08:52 -0400 Subject: [PATCH 9/9] Fix CI release workflow --- .github/workflows/release.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96b1b6a..1732b7a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,9 +3,9 @@ name: Build and Release env: go-version: "1.19" -on: push -# release: -# types: [created] +on: + release: + types: [created] jobs: release: @@ -54,4 +54,3 @@ jobs: uses: softprops/action-gh-release@v1 with: files: ${{ env.ARTIFACT_NAME }} - tag_name: v1.0.5