Browse Source

Update build image workflow. (#361)

Push the builder image to ghcr.io instead of dockerhub.
Clean up the proto builder Dockerfile.
pull/7804/head
M. J. Fromberger 3 years ago
committed by GitHub
parent
commit
d783273b05
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 17 deletions
  1. +13
    -9
      .github/workflows/proto-dockerfile.yml
  2. +3
    -8
      proto/Dockerfile

+ 13
- 9
.github/workflows/proto-dockerfile.yml View File

@ -5,9 +5,8 @@
# should merge the updates first and wait for this workflow to complete, # should merge the updates first and wait for this workflow to complete,
# so that the changes will be available for the dependent workflows. # so that the changes will be available for the dependent workflows.
# #
# TODO(#7272): Update the target location of the builder image.
name: Build & Push TM Proto Builder
name: Build & Push Proto Builder Image
on: on:
pull_request: pull_request:
paths: paths:
@ -21,15 +20,19 @@ on:
# run this job once a month to recieve any go or buf updates # run this job once a month to recieve any go or buf updates
- cron: "* * 1 * *" - cron: "* * 1 * *"
env:
REGISTRY: ghcr.io
IMAGE_NAME: tendermint/docker-build-proto
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.4.0 - uses: actions/checkout@v2.4.0
- name: Prepare
- name: Check out and assign tags
id: prep id: prep
run: | run: |
DOCKER_IMAGE=tendermintdev/docker-build-proto
DOCKER_IMAGE="${REGISTRY}/${IMAGE_NAME}"
VERSION=noop VERSION=noop
if [[ $GITHUB_REF == refs/tags/* ]]; then if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/} VERSION=${GITHUB_REF#refs/tags/}
@ -42,16 +45,17 @@ jobs:
TAGS="${DOCKER_IMAGE}:${VERSION}" TAGS="${DOCKER_IMAGE}:${VERSION}"
echo ::set-output name=tags::${TAGS} echo ::set-output name=tags::${TAGS}
- name: Set up Docker Buildx
- name: Set up docker buildx
uses: docker/setup-buildx-action@v1.6.0 uses: docker/setup-buildx-action@v1.6.0
- name: Login to DockerHub
- name: Log in to the container registry
uses: docker/login-action@v1.10.0 uses: docker/login-action@v1.10.0
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to Docker Hub
- name: Build and publish image
uses: docker/build-push-action@v2.7.0 uses: docker/build-push-action@v2.7.0
with: with:
context: ./proto context: ./proto


+ 3
- 8
proto/Dockerfile View File

@ -1,19 +1,14 @@
# This Dockerfile defines an image containing tools for linting, formatting, # This Dockerfile defines an image containing tools for linting, formatting,
# and compiling the Tendermint protos. # and compiling the Tendermint protos.
FROM bufbuild/buf:latest as buf
FROM golang:1.17-alpine FROM golang:1.17-alpine
# Install a commonly used set of programs for use with our protos. # Install a commonly used set of programs for use with our protos.
# clang-extra-tools is included here because it provides clang-format, # clang-extra-tools is included here because it provides clang-format,
# used to format the .proto files. # used to format the .proto files.
RUN apk add --update --no-cache build-base clang-extra-tools curl git && \
apk add --update --no-cache build-base clang-extra-tools curl git go && \
rm -rf /var/cache/apk/*
RUN apk add --no-cache build-base clang-extra-tools curl git
ENV GOLANG_PROTOBUF_VERSION=1.3.1 \ ENV GOLANG_PROTOBUF_VERSION=1.3.1 \
GOGO_PROTOBUF_VERSION=1.3.2
GOGO_PROTOBUF_VERSION=1.3.2
# Retrieve the go protoc programs and copy them into the PATH # Retrieve the go protoc programs and copy them into the PATH
RUN go install github.com/golang/protobuf/protoc-gen-go@v${GOLANG_PROTOBUF_VERSION} && \ RUN go install github.com/golang/protobuf/protoc-gen-go@v${GOLANG_PROTOBUF_VERSION} && \
@ -22,4 +17,4 @@ RUN go install github.com/golang/protobuf/protoc-gen-go@v${GOLANG_PROTOBUF_VERSI
mv "$(go env GOPATH)"/bin/* /usr/local/bin/ mv "$(go env GOPATH)"/bin/* /usr/local/bin/
# Copy the 'buf' program out of the buildbuf/buf container. # Copy the 'buf' program out of the buildbuf/buf container.
COPY --from=buf /usr/local/bin/* /usr/local/bin/
COPY --from=bufbuild/buf:latest /usr/local/bin/* /usr/local/bin/

Loading…
Cancel
Save