circleci: Adding ability to push releases to github.

This commit is contained in:
Sam Johnston 2021-10-18 10:37:01 -05:00
parent 6a86c8934a
commit 52f4791779

View File

@ -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 version: 2.1
jobs: jobs:
test: test:
@ -10,7 +7,7 @@ jobs:
- checkout - checkout
build_geth_push: build_geth_push:
docker: # run the steps with Docker 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 # this is where all `steps` will run
steps: steps:
- checkout - checkout
@ -19,56 +16,27 @@ jobs:
name: Prep env name: Prep env
command: | command: |
mkdir -p /home/circleci/go/src mkdir -p /home/circleci/go/src
mkdir artifacts
go get go get
- run: - run:
name: build geth binaries name: build geth binaries
command: | command: |
sudo apt update sudo apt update
sudo apt install gcc-aarch64-linux-gnu libc6-dev-arm64-cross wget -y 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 GOPATH=$HOME/go
export GOARCH=amd64 export GOARCH=amd64
go build -o geth-amd64 ./cmd/geth export PLUGETH_UTILS_VERSION=$(grep "github.com/openrelayxyz/plugeth-utils v" go.mod | cut -d ' ' -f 2)
CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=arm64 go build -o geth-arm64 ./cmd/geth go build -o ./artifacts/geth-linux-amd64-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG} ./cmd/geth
# - run: CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=arm64 go build -o ./artifacts/geth-linux-arm64-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG} ./cmd/geth
# 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
- run: - run:
name: Prep env name: "Publish Release on GitHub"
command: | command: |
mkdir -p /home/circleci/go/src go get github.com/tcnksm/ghr
go get PLUGETH_UTILS_VERSION=$(grep "github.com/openrelayxyz/plugeth-utils v" go.mod | cut -d ' ' -f 2)
- run: NAME=plugeth-$PLUGETH_UTILS_VERSION-${CIRCLE_TAG}
name: build plugins VERSION=${CIRCLE_TAG}
command: | ghr -draft -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -name $NAME -delete ${VERSION} ./artifacts/
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
workflows: workflows:
@ -79,14 +47,6 @@ workflows:
# filters: # required since `deploy` has tag filters AND requires `build` # filters: # required since `deploy` has tag filters AND requires `build`
# tags: # tags:
# only: /.*/ # only: /.*/
- build_plugins:
# requires:
# - test
filters:
tags:
only: /^v.*/
branches:
ignore: /.*/
- build_geth_push: - build_geth_push:
# requires: # requires:
# - test # - test