From a491deb152ef7de0e2121bc2ca03c1a4bcfcb8dc Mon Sep 17 00:00:00 2001 From: "F. Eugene Aumson" Date: Fri, 16 Aug 2024 16:32:29 +0000 Subject: [PATCH 1/3] goreleaser: signature aggregator --- .../{release.yml => release_awm_relayer.yml} | 9 ++- .../release_signature_aggregator.yml | 75 +++++++++++++++++++ Dockerfile | 7 -- .goreleaser.yml => relayer/.goreleaser.yml | 9 ++- relayer/Dockerfile | 6 ++ signature-aggregator/.goreleaser.yml | 68 +++++++++++++++++ signature-aggregator/Dockerfile | 6 ++ 7 files changed, 166 insertions(+), 14 deletions(-) rename .github/workflows/{release.yml => release_awm_relayer.yml} (91%) create mode 100644 .github/workflows/release_signature_aggregator.yml delete mode 100644 Dockerfile rename .goreleaser.yml => relayer/.goreleaser.yml (91%) create mode 100644 relayer/Dockerfile create mode 100644 signature-aggregator/.goreleaser.yml create mode 100644 signature-aggregator/Dockerfile diff --git a/.github/workflows/release.yml b/.github/workflows/release_awm_relayer.yml similarity index 91% rename from .github/workflows/release.yml rename to .github/workflows/release_awm_relayer.yml index 97c08a1e..240c0d56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release_awm_relayer.yml @@ -1,12 +1,12 @@ # Copyright (C) 2024, Ava Labs, Inc. All rights reserved. # See the file LICENSE for licensing terms. -name: Release +name: Release awm-relayer on: push: tags: - - "*" + - "awm-relayer/*" jobs: release: @@ -66,9 +66,10 @@ jobs: - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: - distribution: goreleaser + distribution: goreleaser-pro version: latest - args: release --clean + args: release --clean --config relayer/.goreleaser.yml env: # https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/.github/workflows/release_signature_aggregator.yml b/.github/workflows/release_signature_aggregator.yml new file mode 100644 index 00000000..61474a72 --- /dev/null +++ b/.github/workflows/release_signature_aggregator.yml @@ -0,0 +1,75 @@ +# Copyright (C) 2024, Ava Labs, Inc. All rights reserved. +# See the file LICENSE for licensing terms. + +name: Release signature-aggregator + +on: + push: + tags: + - "signature-aggregator/*" + +jobs: + release: + runs-on: ubuntu-22.04 + steps: + - name: Git checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + # The GO_VERSION must be set explicitly to be used in the Dockerfile. + - name: Set Go version + run: | + source ./scripts/versions.sh + echo GO_VERSION=$GO_VERSION >> $GITHUB_ENV + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + + - name: Set up arm64 cross compiler + run: | + sudo apt-get -y update + sudo apt-get -y install gcc-aarch64-linux-gnu + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Checkout osxcross + uses: actions/checkout@v4 + with: + repository: tpoechtrager/osxcross + path: osxcross + + - name: Build osxcross + run: | + sudo apt-get -y install clang llvm-dev libxml2-dev uuid-dev libssl-dev bash patch make tar xz-utils bzip2 gzip sed cpio libbz2-dev + cd osxcross + wget https://github.com/joseluisq/macosx-sdks/releases/download/12.3/$MACOS_SDK_FNAME -O tarballs/$MACOS_SDK_FNAME + echo $MACOS_SDK_CHECKSUM tarballs/$MACOS_SDK_FNAME | sha256sum -c - + UNATTENDED=1 ./build.sh + echo $PWD/target/bin >> $GITHUB_PATH + env: + MACOS_SDK_FNAME: MacOSX12.3.sdk.tar.xz + MACOS_SDK_CHECKSUM: 3abd261ceb483c44295a6623fdffe5d44fc4ac2c872526576ec5ab5ad0f6e26c + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser-pro + version: latest + args: release --clean --config signature-aggregator/.goreleaser.yml + env: + # https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 713622c2..00000000 --- a/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -ARG GO_VERSION -FROM golang:${GO_VERSION} -COPY awm-relayer /usr/bin/awm-relayer -EXPOSE 8080 -USER 1001 -CMD ["start"] -ENTRYPOINT [ "/usr/bin/awm-relayer" ] \ No newline at end of file diff --git a/.goreleaser.yml b/relayer/.goreleaser.yml similarity index 91% rename from .goreleaser.yml rename to relayer/.goreleaser.yml index 2b4e4d2a..d86ab79f 100644 --- a/.goreleaser.yml +++ b/relayer/.goreleaser.yml @@ -1,4 +1,7 @@ # ref. https://goreleaser.com/customization/build/ +project_name: awm-relayer +monorepo: + tag_prefix: awm-relayer/ builds: - id: awm-relayer main: ./relayer/main/main.go @@ -35,14 +38,14 @@ dockers: build_flag_templates: - "--pull" - "--platform=linux/amd64" - - "--build-arg=GO_VERSION={{ .Env.GO_VERSION }}" + dockerfile: "relayer/Dockerfile" - image_templates: - 'avaplatform/awm-relayer:{{ .Tag }}-arm64' use: buildx build_flag_templates: - "--pull" - "--platform=linux/arm64" - - "--build-arg=GO_VERSION={{ .Env.GO_VERSION }}" + dockerfile: "relayer/Dockerfile" goarch: arm64 docker_manifests: - name_template: 'avaplatform/awm-relayer:{{ .Tag }}' @@ -62,4 +65,4 @@ release: owner: ava-labs name: awm-relayer # If tag indicates rc, will mark it as prerelease - prerelease: auto \ No newline at end of file + prerelease: auto diff --git a/relayer/Dockerfile b/relayer/Dockerfile new file mode 100644 index 00000000..87461e5f --- /dev/null +++ b/relayer/Dockerfile @@ -0,0 +1,6 @@ +FROM debian:11-slim +COPY awm-relayer /usr/bin/awm-relayer +EXPOSE 8080 +USER 1001 +CMD ["start"] +ENTRYPOINT [ "/usr/bin/awm-relayer" ] diff --git a/signature-aggregator/.goreleaser.yml b/signature-aggregator/.goreleaser.yml new file mode 100644 index 00000000..85afc2c9 --- /dev/null +++ b/signature-aggregator/.goreleaser.yml @@ -0,0 +1,68 @@ +# ref. https://goreleaser.com/customization/build/ +project_name: signature-aggregator +monorepo: + tag_prefix: signature-aggregator/ +builds: + - id: signature-aggregator + main: ./signature-aggregator/main/main.go + binary: signature-aggregator + flags: + - -v + # windows is ignored by default, as the `goos` field by default only + # contains linux and darwin + goos: + - linux + - darwin + goarch: + - amd64 + - arm64 + env: + - CGO_ENABLED=1 + - CGO_CFLAGS=-O -D__BLST_PORTABLE__ # Set the CGO flags to use the portable version of BLST + overrides: + - goos: linux + goarch: arm64 + env: + - CC=aarch64-linux-gnu-gcc + - goos: darwin + goarch: arm64 + env: + - CC=oa64-clang + ignore: + - goos: darwin + goarch: amd64 +dockers: + - image_templates: + - 'avaplatform/signature-aggregator:{{ .Tag }}-amd64' + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/amd64" + dockerfile: "signature-aggregator/Dockerfile" + - image_templates: + - 'avaplatform/signature-aggregator:{{ .Tag }}-arm64' + use: buildx + build_flag_templates: + - "--pull" + - "--platform=linux/arm64" + dockerfile: "signature-aggregator/Dockerfile" + goarch: arm64 +docker_manifests: + - name_template: 'avaplatform/signature-aggregator:{{ .Tag }}' + image_templates: + - 'avaplatform/signature-aggregator:{{ .Tag }}-amd64' + - 'avaplatform/signature-aggregator:{{ .Tag }}-arm64' + - name_template: 'avaplatform/signature-aggregator:latest' + image_templates: + - 'avaplatform/signature-aggregator:{{ .Tag }}-amd64' + - 'avaplatform/signature-aggregator:{{ .Tag }}-arm64' + # If tag is an rc, do not push the latest tag + skip_push: auto +release: + # Repo in which the release will be created. + # Default is extracted from the origin remote URL or empty if its private hosted. + github: + owner: ava-labs + name: awm-relayer + # If tag indicates rc, will mark it as prerelease + prerelease: auto diff --git a/signature-aggregator/Dockerfile b/signature-aggregator/Dockerfile new file mode 100644 index 00000000..891fdebb --- /dev/null +++ b/signature-aggregator/Dockerfile @@ -0,0 +1,6 @@ +FROM debian:11-slim +COPY signature-aggregator /usr/bin/signature-aggregator +EXPOSE 8080 +EXPOSE 8081 +CMD ["start"] +ENTRYPOINT [ "/usr/bin/signature-aggregator" ] From 7c289ce0d9732a239b0cc883c29e9943c02d15d1 Mon Sep 17 00:00:00 2001 From: "F. Eugene Aumson" Date: Thu, 5 Sep 2024 15:47:40 +0000 Subject: [PATCH 2/3] stop setting GO_VERSION env var in release Action addresses review comment https://github.com/ava-labs/awm-relayer/pull/435#discussion_r1745597635 --- .github/workflows/release_awm_relayer.yml | 6 ------ .github/workflows/release_signature_aggregator.yml | 6 ------ 2 files changed, 12 deletions(-) diff --git a/.github/workflows/release_awm_relayer.yml b/.github/workflows/release_awm_relayer.yml index 240c0d56..45345eb7 100644 --- a/.github/workflows/release_awm_relayer.yml +++ b/.github/workflows/release_awm_relayer.yml @@ -17,12 +17,6 @@ jobs: with: submodules: recursive - # The GO_VERSION must be set explicitly to be used in the Dockerfile. - - name: Set Go version - run: | - source ./scripts/versions.sh - echo GO_VERSION=$GO_VERSION >> $GITHUB_ENV - - name: Set up Go uses: actions/setup-go@v5 with: diff --git a/.github/workflows/release_signature_aggregator.yml b/.github/workflows/release_signature_aggregator.yml index 61474a72..d6b2c154 100644 --- a/.github/workflows/release_signature_aggregator.yml +++ b/.github/workflows/release_signature_aggregator.yml @@ -17,12 +17,6 @@ jobs: with: submodules: recursive - # The GO_VERSION must be set explicitly to be used in the Dockerfile. - - name: Set Go version - run: | - source ./scripts/versions.sh - echo GO_VERSION=$GO_VERSION >> $GITHUB_ENV - - name: Set up Go uses: actions/setup-go@v5 with: From 02d6617bc662973aa8be2d029b972e63cbbec8e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 12:04:36 +0000 Subject: [PATCH 3/3] Bump github.com/aws/aws-sdk-go-v2/service/kms from 1.35.6 to 1.35.7 Bumps [github.com/aws/aws-sdk-go-v2/service/kms](https://github.com/aws/aws-sdk-go-v2) from 1.35.6 to 1.35.7. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ecs/v1.35.6...service/ivs/v1.35.7) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/service/kms dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b01056da..b9a4a157 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/ava-labs/teleporter v1.0.6 github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/aws/aws-sdk-go-v2/config v1.27.9 - github.com/aws/aws-sdk-go-v2/service/kms v1.35.6 + github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 github.com/ethereum/go-ethereum v1.13.8 github.com/hashicorp/golang-lru/v2 v2.0.7 github.com/onsi/ginkgo/v2 v2.20.2 diff --git a/go.sum b/go.sum index fe1cb1de..6244b103 100644 --- a/go.sum +++ b/go.sum @@ -84,8 +84,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibR github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 h1:b+E7zIUHMmcB4Dckjpkapoy47W6C9QBv/zoUP+Hn8Kc= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6/go.mod h1:S2fNV0rxrP78NhPbCZeQgY8H9jdDMeGtwcfZIRxzBqU= -github.com/aws/aws-sdk-go-v2/service/kms v1.35.6 h1:03MyCzKu/nQZRtHO7VZk1BAbSJvtv5whnfZweLdZxI0= -github.com/aws/aws-sdk-go-v2/service/kms v1.35.6/go.mod h1:K9lwD0Rsx9+NSaJKsdAdlDK4b2G4KKOEve9PzHxPoMI= +github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 h1:v0D1LeMkA/X+JHAZWERrr+sUGOt8KrCZKnJA6KszkcE= +github.com/aws/aws-sdk-go-v2/service/kms v1.35.7/go.mod h1:K9lwD0Rsx9+NSaJKsdAdlDK4b2G4KKOEve9PzHxPoMI= github.com/aws/aws-sdk-go-v2/service/sso v1.20.3 h1:mnbuWHOcM70/OFUlZZ5rcdfA8PflGXXiefU/O+1S3+8= github.com/aws/aws-sdk-go-v2/service/sso v1.20.3/go.mod h1:5HFu51Elk+4oRBZVxmHrSds5jFXmFj8C3w7DVF2gnrs= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.3 h1:uLq0BKatTmDzWa/Nu4WO0M1AaQDaPpwTKAeByEc6WFM=