From 7bb647cb52e446fb1eaa9319f9161931aa1a96d2 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Sat, 8 Jun 2024 17:37:54 -0700 Subject: [PATCH 1/8] Adds support for multi-platform linux/amd64 & linux/arm64 docker images --- .github/workflows/docker-publish-release.yaml | 16 ++++++++-------- .github/workflows/docker-publish.yaml | 6 +++--- Makefile | 5 +---- ...se-build.yaml => docker-compose-internal.yaml | 0 docker-compose-release.yaml | 6 ++++++ 5 files changed, 18 insertions(+), 15 deletions(-) rename docker-compose-build.yaml => docker-compose-internal.yaml (100%) diff --git a/.github/workflows/docker-publish-release.yaml b/.github/workflows/docker-publish-release.yaml index 60f19ed027..f04ff42cd5 100644 --- a/.github/workflows/docker-publish-release.yaml +++ b/.github/workflows/docker-publish-release.yaml @@ -67,12 +67,12 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} if: ${{ success() }} - # Build And Push Image - - name: Build docker image release - run: make docker-release-build - if: ${{ success() }} - - # Publish if release is tagged or force == true - - name: Push docker image release - run: make docker-release-push + - name: Determine release PUSH_FLAG + run: echo "PUSH_FLAG=--push" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.force == 'true' + + - name: Display push flag + run: echo "${{ env.PUSH_FLAG }}" + + - name: Build (and potentially push) docker image release + run: PUSH_FLAG=$PUSH_FLAG make docker-release-build diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 48163f0184..8b8f080f45 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -1,4 +1,4 @@ -name: docker-publish +name: docker-publish-internal on: push: branches: @@ -47,10 +47,10 @@ jobs: # Build And Push Image - name: Build Docker image - run: docker compose -f docker-compose-build.yaml build + run: docker compose -f docker-compose-internal.yaml build - name: Push Docker image if: github.ref == 'refs/heads/master' - run: docker compose -f docker-compose-build.yaml push + run: docker compose -f docker-compose-internal.yaml push - name: Send GitHub Action trigger data to Slack workflow if: ${{ failure() }} diff --git a/Makefile b/Makefile index c40ad271c5..acd3b2d3a5 100644 --- a/Makefile +++ b/Makefile @@ -94,10 +94,7 @@ integration-tests-dataapi: go test -v ./disperser/dataapi docker-release-build: - RELEASE_TAG=${SEMVER} docker compose -f docker-compose-release.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} - -docker-release-push: - RELEASE_TAG=${SEMVER} docker compose -f docker-compose-release.yaml push + RELEASE_TAG=${SEMVER} docker compose -f docker-compose-release.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} ${PUSH_FLAG} semver: echo "${SEMVER}" diff --git a/docker-compose-build.yaml b/docker-compose-internal.yaml similarity index 100% rename from docker-compose-build.yaml rename to docker-compose-internal.yaml diff --git a/docker-compose-release.yaml b/docker-compose-release.yaml index a6e74e4ecf..2cd3ccfc32 100644 --- a/docker-compose-release.yaml +++ b/docker-compose-release.yaml @@ -4,9 +4,15 @@ services: build: context: . dockerfile: node/cmd/Dockerfile + platforms: + - "linux/amd64" + - "linux/arm64" image: ghcr.io/layr-labs/eigenda/opr-node:${RELEASE_TAG} nodeplugin: build: context: . dockerfile: node/plugin/cmd/Dockerfile + platforms: + - "linux/amd64" + - "linux/arm64" image: ghcr.io/layr-labs/eigenda/opr-nodeplugin:${RELEASE_TAG} From 1f26ddbc811a726c40c91359e18719a07b10ef79 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Sat, 8 Jun 2024 18:04:35 -0700 Subject: [PATCH 2/8] Test workflow --- .github/workflows/docker-publish-release.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-publish-release.yaml b/.github/workflows/docker-publish-release.yaml index f04ff42cd5..e31931c462 100644 --- a/.github/workflows/docker-publish-release.yaml +++ b/.github/workflows/docker-publish-release.yaml @@ -2,6 +2,8 @@ name: docker-publish-release on: push: + branches: + - pschork/multi-platform-releases tags: - v* pull_request: From ed22cc3efbf396d87bbea5cba2788e2736dde167 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Sat, 8 Jun 2024 18:09:00 -0700 Subject: [PATCH 3/8] Revert testing --- .github/workflows/docker-publish-release.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/docker-publish-release.yaml b/.github/workflows/docker-publish-release.yaml index e31931c462..f04ff42cd5 100644 --- a/.github/workflows/docker-publish-release.yaml +++ b/.github/workflows/docker-publish-release.yaml @@ -2,8 +2,6 @@ name: docker-publish-release on: push: - branches: - - pschork/multi-platform-releases tags: - v* pull_request: From 40e3414122892f34117390d16f2ba86a264abdef Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:20:37 -0700 Subject: [PATCH 4/8] Lint --- .github/workflows/docker-publish-release.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/docker-publish-release.yaml b/.github/workflows/docker-publish-release.yaml index f04ff42cd5..dc8d66245f 100644 --- a/.github/workflows/docker-publish-release.yaml +++ b/.github/workflows/docker-publish-release.yaml @@ -67,12 +67,9 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} if: ${{ success() }} - - name: Determine release PUSH_FLAG + - name: Set release PUSH_FLAG run: echo "PUSH_FLAG=--push" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.force == 'true' - - name: Display push flag - run: echo "${{ env.PUSH_FLAG }}" - - name: Build (and potentially push) docker image release run: PUSH_FLAG=$PUSH_FLAG make docker-release-build From 8c82532705c67f63178ef15db0392212b65c9f41 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:33:44 -0700 Subject: [PATCH 5/8] Add multi-platform build to internal node builds --- .github/workflows/docker-publish.yaml | 11 ++++++----- Makefile | 3 +++ docker-compose-internal.yaml | 3 +++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 8b8f080f45..62a9fdf1d2 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -3,6 +3,7 @@ on: push: branches: - master + - pschork/multi-platform-releases pull_request: workflow_dispatch: @@ -45,12 +46,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - # Build And Push Image - - name: Build Docker image - run: docker compose -f docker-compose-internal.yaml build - - name: Push Docker image + - name: Set internal release PUSH_FLAG + run: echo "PUSH_FLAG=--push" >> $GITHUB_ENV if: github.ref == 'refs/heads/master' - run: docker compose -f docker-compose-internal.yaml push + + - name: Build (and potentially push) internal docker image release + run: PUSH_FLAG=$PUSH_FLAG make docker-internal-build - name: Send GitHub Action trigger data to Slack workflow if: ${{ failure() }} diff --git a/Makefile b/Makefile index acd3b2d3a5..87a98dff48 100644 --- a/Makefile +++ b/Makefile @@ -93,6 +93,9 @@ integration-tests-dataapi: make dataapi-build go test -v ./disperser/dataapi +docker-internal-build: + RELEASE_TAG=latest docker compose -f docker-compose-internal.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} ${PUSH_FLAG} + docker-release-build: RELEASE_TAG=${SEMVER} docker compose -f docker-compose-release.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} ${PUSH_FLAG} diff --git a/docker-compose-internal.yaml b/docker-compose-internal.yaml index 473aeec17f..6e34d194b4 100644 --- a/docker-compose-internal.yaml +++ b/docker-compose-internal.yaml @@ -24,6 +24,9 @@ services: build: context: . dockerfile: node/cmd/Dockerfile + platforms: + - "linux/amd64" + - "linux/arm64" image: ghcr.io/layr-labs/eigenda/node:${BUILD_TAG:-latest} churner: build: From 685d0c7d1c829a1a781a0d3b1dad8657bbf98a48 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:37:34 -0700 Subject: [PATCH 6/8] Update checkout@v4 --- .github/workflows/docker-publish.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index 62a9fdf1d2..c221a653fc 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -20,7 +20,9 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Setup Buildx uses: docker/setup-buildx-action@v1 From 03eea530ef8ace19560e0277647f3e3690710c3c Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Fri, 14 Jun 2024 14:09:42 -0700 Subject: [PATCH 7/8] Fix release branch regex --- GitVersion.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GitVersion.yml b/GitVersion.yml index 52981c4aca..062979b1e0 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -19,7 +19,7 @@ branches: increment: None prevent-increment-of-merged-branch-version: true track-merge-target: false - regex: ^v*|^releases?[/-] + regex: ^v\d+\.\d+\.\d+$|^releases?[/-] source-branches: - main - release From fcd211b9bb30d3f1d5355fd08fb6a4bd5efac5b6 Mon Sep 17 00:00:00 2001 From: Patrick Schork <354473+pschork@users.noreply.github.com> Date: Fri, 14 Jun 2024 14:30:41 -0700 Subject: [PATCH 8/8] Revert "Add multi-platform build to internal node builds" This reverts commit 8c82532705c67f63178ef15db0392212b65c9f41. --- .github/workflows/docker-publish.yaml | 11 +++++------ Makefile | 3 --- docker-compose-internal.yaml | 3 --- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/docker-publish.yaml b/.github/workflows/docker-publish.yaml index c221a653fc..3a69ab7891 100644 --- a/.github/workflows/docker-publish.yaml +++ b/.github/workflows/docker-publish.yaml @@ -3,7 +3,6 @@ on: push: branches: - master - - pschork/multi-platform-releases pull_request: workflow_dispatch: @@ -48,12 +47,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Set internal release PUSH_FLAG - run: echo "PUSH_FLAG=--push" >> $GITHUB_ENV + # Build And Push Image + - name: Build Docker image + run: docker compose -f docker-compose-internal.yaml build + - name: Push Docker image if: github.ref == 'refs/heads/master' - - - name: Build (and potentially push) internal docker image release - run: PUSH_FLAG=$PUSH_FLAG make docker-internal-build + run: docker compose -f docker-compose-internal.yaml push - name: Send GitHub Action trigger data to Slack workflow if: ${{ failure() }} diff --git a/Makefile b/Makefile index 87a98dff48..acd3b2d3a5 100644 --- a/Makefile +++ b/Makefile @@ -93,9 +93,6 @@ integration-tests-dataapi: make dataapi-build go test -v ./disperser/dataapi -docker-internal-build: - RELEASE_TAG=latest docker compose -f docker-compose-internal.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} ${PUSH_FLAG} - docker-release-build: RELEASE_TAG=${SEMVER} docker compose -f docker-compose-release.yaml build --build-arg SEMVER=${SEMVER} --build-arg GITCOMMIT=${GITCOMMIT} --build-arg GITDATE=${GITDATE} ${PUSH_FLAG} diff --git a/docker-compose-internal.yaml b/docker-compose-internal.yaml index 6e34d194b4..473aeec17f 100644 --- a/docker-compose-internal.yaml +++ b/docker-compose-internal.yaml @@ -24,9 +24,6 @@ services: build: context: . dockerfile: node/cmd/Dockerfile - platforms: - - "linux/amd64" - - "linux/arm64" image: ghcr.io/layr-labs/eigenda/node:${BUILD_TAG:-latest} churner: build: