From 52f479177917e81db8dc9ce58914d52628aaacf9 Mon Sep 17 00:00:00 2001 From: Sam Johnston Date: Mon, 18 Oct 2021 10:37:01 -0500 Subject: [PATCH] circleci: Adding ability to push releases to github. --- .circleci/config.yml | 64 +++++++++----------------------------------- 1 file changed, 12 insertions(+), 52 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ce695d240..194d61d6d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,3 @@ -# orbs: -# aws-cli: circleci/aws-cli@1.0.0 #See: https://circleci.com/orbs/registry/orb/circleci/aws-cli - version: 2.1 jobs: test: @@ -10,7 +7,7 @@ jobs: - checkout build_geth_push: docker: # run the steps with Docker - - image: cimg/go:1.16 # ...with this image as the primary container + - image: cimg/go:1.17.2 # ...with this image as the primary container # this is where all `steps` will run steps: - checkout @@ -19,56 +16,27 @@ jobs: name: Prep env command: | mkdir -p /home/circleci/go/src + mkdir artifacts go get - run: name: build geth binaries command: | sudo apt update sudo apt install gcc-aarch64-linux-gnu libc6-dev-arm64-cross wget -y + PLUGETH_UTILS_VERSION=$(grep "github.com/openrelayxyz/plugeth-utils v" go.mod | cut -d ' ' -f 2) export GOPATH=$HOME/go export GOARCH=amd64 - go build -o geth-amd64 ./cmd/geth - CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=arm64 go build -o geth-arm64 ./cmd/geth - # - run: - # name: build image - # command: | - # export GOPATH=$HOME/go - # make geth-linux-amd64 - # - aws-cli/setup: #See: https://circleci.com/orbs/registry/orb/circleci/aws-cli - # aws-access-key-id: ACCESS_KEY_ID - # aws-secret-access-key: SECRET_ACCESS_KEY - # aws-region: AWS_REGION - # - run: - # name: push to s3 - # command: aws s3 cp ./geth-amd64 s3://ethercattle-binaries/$CIRCLE_TAG/geth-linux-amd64 --acl=public-read - # - run: - # name: push to s3 - # command: aws s3 cp ./geth-arm64 s3://ethercattle-binaries/$CIRCLE_TAG/geth-linux-arm64 --acl=public-read - # - run: - # name: Message Slack - # command: | - # ./slack-post.sh -w $SlackWebhook -m "*go-ethereum*:\nTag: $CIRCLE_TAG \n $(jq -r '.builds[0].artifact_id' ./manifest.json)" - build_plugins: - docker: # run the steps with Docker - - image: cimg/go:1.16 # ...with this image as the primary container - # this is where all `steps` will run - steps: - - checkout - - setup_remote_docker + export PLUGETH_UTILS_VERSION=$(grep "github.com/openrelayxyz/plugeth-utils v" go.mod | cut -d ' ' -f 2) + go build -o ./artifacts/geth-linux-amd64-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG} ./cmd/geth + CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=arm64 go build -o ./artifacts/geth-linux-arm64-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG} ./cmd/geth - run: - name: Prep env + name: "Publish Release on GitHub" command: | - mkdir -p /home/circleci/go/src - go get - - run: - name: build plugins - command: | - sudo apt update - sudo apt install gcc-aarch64-linux-gnu libc6-dev-arm64-cross wget -y - export GOPATH=$HOME/go - export GOARCH=amd64 - mkdir plugin-artifacts - for x in $($(which ls) -1 plugins/packages); do go build -buildmode=plugin -o plugin-artifacts/$x.so ./plugins/packages/$x ; done + go get github.com/tcnksm/ghr + PLUGETH_UTILS_VERSION=$(grep "github.com/openrelayxyz/plugeth-utils v" go.mod | cut -d ' ' -f 2) + NAME=plugeth-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG} + VERSION=${CIRCLE_TAG} + ghr -draft -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -name $NAME -delete ${VERSION} ./artifacts/ workflows: @@ -79,14 +47,6 @@ workflows: # filters: # required since `deploy` has tag filters AND requires `build` # tags: # only: /.*/ - - build_plugins: - # requires: - # - test - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ - build_geth_push: # requires: # - test