From dad0f0b264d9585ad97289566508d6a37363b9f8 Mon Sep 17 00:00:00 2001 From: Robert Zaremba Date: Fri, 23 Apr 2021 18:31:17 +0200 Subject: [PATCH 1/4] setup: reuses proto container --- Makefile | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index a26681ea8e5f..bcd712a82424 100644 --- a/Makefile +++ b/Makefile @@ -369,24 +369,33 @@ devdoc-update: ### Protobuf ### ############################################################################### +containerProtoVer=latest # v0.1 +containerProtoImage=tendermintdev/sdk-proto-gen:$(containerProtoVer) +containerProtoGen=cosmos-sdk-proto-gen-$(containerProtoVer) +containerProtoGenSwagger=cosmos-sdk-proto-gen-swagger-$(containerProtoVer) +containerProtoFmt=cosmos-sdk-proto-fmt-$(containerProtoVer) + proto-all: proto-format proto-lint proto-gen proto-gen: @echo "Generating Protobuf files" - $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen:v0.1 sh ./scripts/protocgen.sh - -proto-format: - @echo "Formatting Protobuf files" - $(DOCKER) run --rm -v $(CURDIR):/workspace \ - --workdir /workspace tendermintdev/docker-build-proto \ - find ./ -not -path "./third_party/*" -name *.proto -exec clang-format -i {} \; + @if docker ps -a --format '{{.Names}}' | grep -Eq "^${containerProtoGen}$$"; then docker start -a $(containerProtoGen); else docker run --name $(containerProtoGen) -v $(CURDIR):/workspace --workdir /workspace $(containerProtoImage) \ + sh ./scripts/protocgen.sh; fi # This generates the SDK's custom wrapper for google.protobuf.Any. It should only be run manually when needed proto-gen-any: - $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protocgen-any.sh + @echo "Generating Protobuf Any" + $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(containerProtoImage) sh ./scripts/protocgen-any.sh proto-swagger-gen: - $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace tendermintdev/sdk-proto-gen sh ./scripts/protoc-swagger-gen.sh + @echo "Generating Protobuf Swagger" + @if docker ps -a --format '{{.Names}}' | grep -Eq "^${containerProtoGenSwagger}$$"; then docker start -a $(containerProtoGenSwagger); else docker run --name $(containerProtoGenSwagger) -v $(CURDIR):/workspace --workdir /workspace $(containerProtoImage) \ + sh ./scripts/protoc-swagger-gen.sh; fi + +proto-format: + @echo "Formatting Protobuf files" + @if docker ps -a --format '{{.Names}}' | grep -Eq "^${containerProtoFmt}$$"; then docker start -a $(containerProtoFmt); else docker run --name $(containerProtoFmt) -v $(CURDIR):/workspace --workdir /workspace $(containerProtoImage) \ + find ./ -not -path "./third_party/*" -name *.proto -exec clang-format -i {}; fi proto-lint: @$(DOCKER_BUF) lint --error-format=json @@ -394,6 +403,7 @@ proto-lint: proto-check-breaking: @$(DOCKER_BUF) breaking --against $(HTTPS_GIT)#branch=master + TM_URL = https://raw.githubusercontent.com/tendermint/tendermint/v0.34.0-rc6/proto/tendermint GOGO_PROTO_URL = https://raw.githubusercontent.com/regen-network/protobuf/cosmos COSMOS_PROTO_URL = https://raw.githubusercontent.com/regen-network/cosmos-proto/master From 32eb2ff97f3ed8587bfba2f9d32a75fb95845fea Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Mon, 26 Apr 2021 11:23:26 +0300 Subject: [PATCH 2/4] push docker image --- .github/workflows/proto-docker.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/proto-docker.yml b/.github/workflows/proto-docker.yml index e59eeda18bca..abbd18d1b7cb 100644 --- a/.github/workflows/proto-docker.yml +++ b/.github/workflows/proto-docker.yml @@ -37,7 +37,7 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Login to DockerHub - if: ${{ github.event_name != 'pull_request' }} + # if: true uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUBTM_USERNAME }} @@ -49,5 +49,6 @@ jobs: context: ./contrib/devtools file: ./contrib/devtools/dockerfile platforms: linux/amd64,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.prep.outputs.tags }} + push: true + tags: v0.2 + # tags: ${{ steps.prep.outputs.tags }} From 58a714fe7f2f016c380c86c2b447f7befa68bb68 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Mon, 26 Apr 2021 11:45:46 +0300 Subject: [PATCH 3/4] set image name --- .github/workflows/proto-docker.yml | 32 +++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/proto-docker.yml b/.github/workflows/proto-docker.yml index abbd18d1b7cb..febc8d8c0110 100644 --- a/.github/workflows/proto-docker.yml +++ b/.github/workflows/proto-docker.yml @@ -12,21 +12,21 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - - name: Prepare - id: prep - run: | - DOCKER_IMAGE=tendermintdev/sdk-proto-gen - 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}" - echo ::set-output name=tags::${TAGS} + # - name: Prepare + # id: prep + # run: | + # DOCKER_IMAGE=tendermintdev/sdk-proto-gen + # 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}" + # echo ::set-output name=tags::${TAGS} - name: Set up QEMU uses: docker/setup-qemu-action@master @@ -50,5 +50,5 @@ jobs: file: ./contrib/devtools/dockerfile platforms: linux/amd64,linux/arm64 push: true - tags: v0.2 + tags: tendermintdev/sdk-proto-gen:v0.2 # tags: ${{ steps.prep.outputs.tags }} From 367dbad78820a97a11801262c841aeb9039a22f6 Mon Sep 17 00:00:00 2001 From: marbar3778 Date: Mon, 26 Apr 2021 11:52:32 +0300 Subject: [PATCH 4/4] revert and use latest --- .github/workflows/proto-docker.yml | 37 +++++++++++++++--------------- Makefile | 2 +- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/.github/workflows/proto-docker.yml b/.github/workflows/proto-docker.yml index febc8d8c0110..e59eeda18bca 100644 --- a/.github/workflows/proto-docker.yml +++ b/.github/workflows/proto-docker.yml @@ -12,21 +12,21 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - # - name: Prepare - # id: prep - # run: | - # DOCKER_IMAGE=tendermintdev/sdk-proto-gen - # 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}" - # echo ::set-output name=tags::${TAGS} + - name: Prepare + id: prep + run: | + DOCKER_IMAGE=tendermintdev/sdk-proto-gen + 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}" + echo ::set-output name=tags::${TAGS} - name: Set up QEMU uses: docker/setup-qemu-action@master @@ -37,7 +37,7 @@ jobs: uses: docker/setup-buildx-action@v1 - name: Login to DockerHub - # if: true + if: ${{ github.event_name != 'pull_request' }} uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUBTM_USERNAME }} @@ -49,6 +49,5 @@ jobs: context: ./contrib/devtools file: ./contrib/devtools/dockerfile platforms: linux/amd64,linux/arm64 - push: true - tags: tendermintdev/sdk-proto-gen:v0.2 - # tags: ${{ steps.prep.outputs.tags }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.prep.outputs.tags }} diff --git a/Makefile b/Makefile index bcd712a82424..68bf071dd44c 100644 --- a/Makefile +++ b/Makefile @@ -369,7 +369,7 @@ devdoc-update: ### Protobuf ### ############################################################################### -containerProtoVer=latest # v0.1 +containerProtoVer=v0.2 containerProtoImage=tendermintdev/sdk-proto-gen:$(containerProtoVer) containerProtoGen=cosmos-sdk-proto-gen-$(containerProtoVer) containerProtoGenSwagger=cosmos-sdk-proto-gen-swagger-$(containerProtoVer)