From a491deb152ef7de0e2121bc2ca03c1a4bcfcb8dc Mon Sep 17 00:00:00 2001 From: "F. Eugene Aumson" Date: Fri, 16 Aug 2024 16:32:29 +0000 Subject: [PATCH] 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" ]