From 818c39a740f92cc29cf2a80ee80a7f18dc58f82a Mon Sep 17 00:00:00 2001 From: Iqbalabdi Date: Sun, 26 Nov 2023 22:30:29 +0700 Subject: [PATCH 1/2] feat: add goreleaser - Add config for linux release - Add config for darwin release - Add config for windows release - Add build workflows --- .../goreleaser/.goreleaser-for-darwin.yaml | 46 +++++++++++++ .github/goreleaser/.goreleaser-for-linux.yaml | 65 +++++++++++++++++ .../goreleaser/.goreleaser-for-windows.yaml | 46 +++++++++++++ .github/workflows/build.yaml | 69 +++++++++++++++++++ 4 files changed, 226 insertions(+) create mode 100644 .github/goreleaser/.goreleaser-for-darwin.yaml create mode 100644 .github/goreleaser/.goreleaser-for-linux.yaml create mode 100644 .github/goreleaser/.goreleaser-for-windows.yaml create mode 100644 .github/workflows/build.yaml diff --git a/.github/goreleaser/.goreleaser-for-darwin.yaml b/.github/goreleaser/.goreleaser-for-darwin.yaml new file mode 100644 index 00000000..031589fe --- /dev/null +++ b/.github/goreleaser/.goreleaser-for-darwin.yaml @@ -0,0 +1,46 @@ +--- +project_name: stackql + +before: + hooks: + - go mod tidy + - go mod download + - go mod verify + +builds: + - id: stackql-darwin + binary: stackql + main: ./stackql/ + goos: + - darwin + goarch: + - amd64 + - arm64 + env: + - CGO_ENABLED=1 + flags: + - -trimpath + ldflags: >- + -s -w + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion={{.Major}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion={{.Minor}}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion={{.Patch}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildCommitSHA={{.FullCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildShortCommitSHA={{.ShortCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildDate={{.Date}} + -X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPlatform={{.Os}} + +archives: + - format: tar.gz + name_template: "stackql_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" + files: + - LICENSE + - README.md + + +snapshot: + name_template: SNAPSHOT-{{ .ShortCommit }} + +checksum: + name_template: "stackql_darwin_checksums.txt" diff --git a/.github/goreleaser/.goreleaser-for-linux.yaml b/.github/goreleaser/.goreleaser-for-linux.yaml new file mode 100644 index 00000000..9231a838 --- /dev/null +++ b/.github/goreleaser/.goreleaser-for-linux.yaml @@ -0,0 +1,65 @@ +--- +project_name: stackql + +before: + hooks: + - go mod tidy + - go mod download + - go mod verify + +builds: + - id: stackql-linux + binary: stackql + main: ./stackql/ + goos: + - linux + goarch: + - amd64 + - arm64 + env: + - CGO_ENABLED=1 + - >- + {{- if eq .Arch "amd64"}}CC=x86_64-linux-gnu-gcc{{- end }} + {{- if eq .Arch "arm64"}}CC=aarch64-linux-gnu-gcc{{- end }} + - >- + {{- if eq .Arch "amd64"}}CXX=x86_64-linux-gnu-g++{{- end }} + {{- if eq .Arch "arm64"}}CXX=aarch64-linux-gnu-gcc{{- end }} + flags: + - -trimpath + ldflags: >- + -s -w + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion={{.Major}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion={{.Minor}}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion={{.Patch}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildCommitSHA={{.FullCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildShortCommitSHA={{.ShortCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildDate={{.Date}} + -X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPlatform={{.Os}} + +archives: + - format: tar.gz + name_template: "stackql_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" + files: + - LICENSE + - README.md + +snapshot: + name_template: SNAPSHOT-{{ .ShortCommit }} + +checksum: + name_template: "stackql_linux_checksums.txt" + +nfpms: + - id: stackql-nfpms + file_name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" + homepage: https://stackql.io/ + maintainer: "StackQL Team " # optional + description: "Cloud asset management and automation using SQL" + license: MIT + section: golang + formats: + - deb + - rpm + - apk + - archlinux \ No newline at end of file diff --git a/.github/goreleaser/.goreleaser-for-windows.yaml b/.github/goreleaser/.goreleaser-for-windows.yaml new file mode 100644 index 00000000..d9bc113f --- /dev/null +++ b/.github/goreleaser/.goreleaser-for-windows.yaml @@ -0,0 +1,46 @@ +--- +project_name: stackql + +before: + hooks: + - go mod tidy + - go mod download + - go mod verify + +builds: + - id: stackql-windows + binary: stackql + main: ./stackql/ + goos: + - windows + goarch: + - amd64 + env: + - CGO_ENABLED=1 + - CC=x86_64-w64-mingw32-gcc + - CXX=x86_64-w64-mingw32-g++ + flags: + - -trimpath + ldflags: >- + -s -w + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion={{.Major}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion={{.Minor}}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion={{.Patch}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildCommitSHA={{.FullCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildShortCommitSHA={{.ShortCommit}} + -X github.com/stackql/stackql/internal/stackql/cmd.BuildDate={{.Date}} + -X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true + -X github.com/stackql/stackql/internal/stackql/cmd.BuildPlatform={{.Os}} + +archives: + - format: zip + name_template: "stackql_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" + files: + - LICENSE + - README.md + +snapshot: + name_template: SNAPSHOT-{{ .ShortCommit }} + +checksum: + name_template: "stackql_windows_checksums.txt" diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..2eacacc6 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,69 @@ +name: build + +on: + push: + tags: + - 'v*' + +env: + GH_ACCESS_TOKEN: ${{ secrets.ACTIONS_PRIVATE_PACKAGE_SECRET }} + +jobs: + build-linux-binary: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: ^1.19 + - name: Install cross-compiler for linux/arm64 + run: sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + - name: Run Goreleaser + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + args: release --clean --config .github/goreleaser/.goreleaser-for-linux.yaml --verbose + env: + GITHUB_TOKEN: ${{env.GH_ACCESS_TOKEN}} + + build-macos-binary: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: ^1.19 + - name: Run Goreleaser + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + args: release --clean --config .github/goreleaser/.goreleaser-for-darwin.yaml --verbose + env: + GITHUB_TOKEN: ${{env.GH_ACCESS_TOKEN}} + + build-windows-binary: + runs-on: windows-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: ^1.19 + - name: Run Goreleaser + uses: goreleaser/goreleaser-action@v5 + with: + version: latest + args: release --clean --config .github/goreleaser/.goreleaser-for-windows.yaml --verbose + env: + GITHUB_TOKEN: ${{env.GH_ACCESS_TOKEN}} \ No newline at end of file From e71f9199ce03bb4f842c670094bb7179be456bee Mon Sep 17 00:00:00 2001 From: Iqbalabdi Date: Mon, 4 Dec 2023 16:39:12 +0700 Subject: [PATCH 2/2] update: change `tags` title (#13) - change tags title from v* to testing-v* --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2eacacc6..d8648627 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,7 +3,7 @@ name: build on: push: tags: - - 'v*' + - 'testing-v*' env: GH_ACCESS_TOKEN: ${{ secrets.ACTIONS_PRIVATE_PACKAGE_SECRET }}