diff --git a/.circleci/config.yml b/.circleci/config.yml index 170e8529f..340e232d9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -205,23 +205,6 @@ jobs: export GOOS=linux GOARCH=arm64 && python -u scripts/release_management/github-upload.py --id "${RELEASE_ID}" python -u scripts/release_management/github-upload.py --file "/tmp/workspace/SHA256SUMS" --id "${RELEASE_ID}" python -u scripts/release_management/github-publish.py --id "${RELEASE_ID}" - release_docker: - machine: - image: ubuntu-1604:201903-01 - steps: - - checkout - - attach_workspace: - at: /tmp/workspace - - run: - name: "Deploy to Docker Hub" - command: | - # Setting CIRCLE_TAG because we do not tag the release ourselves. - source /tmp/workspace/release-version.source - cp /tmp/workspace/tendermint_linux_amd64 DOCKER/tendermint - docker build --label="tendermint" --tag="tendermint/tendermint:${CIRCLE_TAG}" --tag="tendermint/tendermint:latest" "DOCKER" - docker login -u "${DOCKERHUB_USER}" --password-stdin \<<< "${DOCKERHUB_PASS}" - docker push "tendermint/tendermint" - docker logout reproducible_builds: executor: golang steps: @@ -328,12 +311,3 @@ workflows: branches: only: - /v[0-9]+\.[0-9]+/ - - release_docker: - requires: - - prepare_build - - build_artifacts - filters: - branches: - only: - - /v[0-9]+\.[0-9]+/ - - master diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 000000000..35d132b79 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,55 @@ +name: Build & Push +# Build & Push rebuilds the tendermint docker image on every push to master and creation of tags +# and pushes the image to https://hub.docker.com/r/interchainio/simapp/tags +on: + push: + branches: + - master + tags: + - "v[0-9]+.[0-9]+.[0-9]+" # Push events to matching v*, i.e. v1.0, v20.15.10 + - "v[0-9]+.[0-9]+.[0-9]+-rc*" # Push events to matching v*, i.e. v1.0-rc1, v20.15.10-rc5 + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Prepare + id: prep + run: | + DOCKER_IMAGE=tendermint/tendermint + VERSION=noop + if [[ $GITHUB_REF == refs/tags/* ]]; then + VERSION=${GITHUB_REF#refs/tags/} + elif [[ $GITHUB_REF == refs/heads/* ]]; then + VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') + if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then + VERSION=latest + fi + fi + TAGS="${DOCKER_IMAGE}:${VERSION}" + if [[ $VERSION =~ ^v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + TAGS="$TAGS,${DOCKER_IMAGE}:${VERSION}" + fi + echo ::set-output name=tags::${TAGS} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build Tendermint + run: | + make build-linux && cp build/tendermint DOCKER/tendermint + + - name: Publish to Docker Hub + uses: docker/build-push-action@v2 + with: + context: ./DOCKER + file: ./DOCKER/Dockerfile + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.prep.outputs.tags }}