From 008b1eda39dea6ceed8085ba32611054f62bca5a Mon Sep 17 00:00:00 2001 From: rubenszinho Date: Fri, 11 Apr 2025 15:17:44 -0300 Subject: [PATCH] ci: improve build process with Makefile integration and workflow enhancements --- .github/workflows/deploy.yml | 28 +++++++++++++--------------- Makefile | 25 +++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 06165c0..15d2433 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -102,30 +102,28 @@ jobs: - name: Build Cross-Platform Binaries run: | if [ -z "${{ vars.PROJECT_NAME }}" ]; then - echo "ERROR: PROJECT_NAME GitHub variable is not set. Please set it in repository settings." - exit 1 + PROJECT_NAME="enemeter-data-processing" + echo "Using default project name: $PROJECT_NAME" + else + PROJECT_NAME="${{ vars.PROJECT_NAME }}" + echo "Using project name from settings: $PROJECT_NAME" fi - PROJECT_NAME="${{ vars.PROJECT_NAME }}" - echo "Using project name: $PROJECT_NAME" - go mod tidy echo "Building CLI for version $VERSION" - mkdir -p dist - - GOOS=linux GOARCH=amd64 go build -o dist/$PROJECT_NAME-linux -ldflags="-X '$PROJECT_NAME/commands.CurrentVersion=${VERSION}'" main.go || exit 1 - GOOS=windows GOARCH=amd64 go build -o dist/$PROJECT_NAME.exe -ldflags="-X '$PROJECT_NAME/commands.CurrentVersion=${VERSION}'" main.go || exit 1 - GOOS=darwin GOARCH=amd64 go build -o dist/$PROJECT_NAME-mac -ldflags="-X '$PROJECT_NAME/commands.CurrentVersion=${VERSION}'" main.go || exit 1 - - echo "Build completed. Contents of dist/:" - ls -lh dist/ + + make build-all VERSION=$VERSION - name: Create GitHub Release run: | PROJECT_NAME="${{ vars.PROJECT_NAME }}" + if [ -z "$PROJECT_NAME" ]; then + PROJECT_NAME="enemeter-data-processing" + fi + gh release create "v${VERSION}" \ --title "Release v${VERSION}" \ - --notes-file CHANGELOG.md \ + --notes-file docs/CHANGELOG.md \ dist/$PROJECT_NAME-linux dist/$PROJECT_NAME.exe dist/$PROJECT_NAME-mac env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_TOKEN: ${{ steps.app-token.outputs.token }} diff --git a/Makefile b/Makefile index bb52141..633b416 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,25 @@ +VERSION ?= 1.0.0 +PROJECT_NAME = enemeter-data-processing + +.PHONY: build build-all clean test + build: - go build -o dist/rubrion-cli ./cmd/rubrion-cli/main.go + mkdir -p dist + go build -o dist/$(PROJECT_NAME) ./cmd/$(PROJECT_NAME) + +build-all: + mkdir -p dist + @echo "Building for Linux..." + GOOS=linux GOARCH=amd64 go build -o dist/$(PROJECT_NAME)-linux -ldflags="-X '$(PROJECT_NAME)/internal/commands.CurrentVersion=$(VERSION)'" ./cmd/$(PROJECT_NAME) + @echo "Building for Windows..." + GOOS=windows GOARCH=amd64 go build -o dist/$(PROJECT_NAME).exe -ldflags="-X '$(PROJECT_NAME)/internal/commands.CurrentVersion=$(VERSION)'" ./cmd/$(PROJECT_NAME) + @echo "Building for macOS..." + GOOS=darwin GOARCH=amd64 go build -o dist/$(PROJECT_NAME)-mac -ldflags="-X '$(PROJECT_NAME)/internal/commands.CurrentVersion=$(VERSION)'" ./cmd/$(PROJECT_NAME) + @echo "Build completed. Contents of dist/:" + @ls -lh dist/ + +clean: + rm -rf dist/ -.PHONY: build +test: + go test -v ./...