From 076adc21c991e42f35e4c30b79afe30e55bf7e5f Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Fri, 7 Jul 2023 23:33:47 +0500 Subject: [PATCH 01/13] fix: push docker multi-arch images --- .github/workflows/docker-publish.yml | 18 ++++++++++++++++-- Makefile | 15 ++++++++++----- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index e7d9e0c1fa8e..7001d0e9f4ed 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -15,8 +15,22 @@ jobs: - name: Checkout uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + - name: Build and Push docker image env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_push + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + run : make docker_build + + diff --git a/Makefile b/Makefile index e075f092f158..99e8a8aaeacb 100644 --- a/Makefile +++ b/Makefile @@ -142,11 +142,16 @@ upgrade-package: ## update just one package to the latest usable release check-types: ## run static type-checking tests mypy -docker_build: - DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development -t openedx/lms-dev - DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production -t openedx/lms - DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development -t openedx/cms-dev - DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production -t openedx/cms +docker_build: docker_auth + docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/lms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . + docker buildx build -t openedx/lms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . + docker buildx build -t openedx/cms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/cms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . + docker buildx build -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . + docker_tag: docker_build docker tag openedx/lms openedx/lms:${GITHUB_SHA} From 1920517cc051a20e6d3ea91577232d973ee89644 Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Fri, 7 Jul 2023 23:50:52 +0500 Subject: [PATCH 02/13] fix: push docker multi-arch images --- Makefile | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 99e8a8aaeacb..ede37851ef93 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Do things in edx-platform .PHONY: base-requirements check-types clean \ compile-requirements detect_changed_source_translations dev-requirements \ - docker_auth docker_build docker_push docker_tag docs extract_translations \ + docker_auth docker_build docs extract_translations \ guides help lint-imports local-requirements pre-requirements pull \ pull_translations push_translations requirements shell swagger \ technical-docs test-requirements ubuntu-requirements upgrade-package upgrade @@ -142,6 +142,9 @@ upgrade-package: ## update just one package to the latest usable release check-types: ## run static type-checking tests mypy +docker_auth: + echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin + docker_build: docker_auth docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . @@ -152,26 +155,6 @@ docker_build: docker_auth docker buildx build -t openedx/cms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . docker buildx build -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . - -docker_tag: docker_build - docker tag openedx/lms openedx/lms:${GITHUB_SHA} - docker tag openedx/lms-dev openedx/lms-dev:${GITHUB_SHA} - docker tag openedx/cms openedx/cms:${GITHUB_SHA} - docker tag openedx/cms-dev openedx/cms-dev:${GITHUB_SHA} - -docker_auth: - echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin - -docker_push: docker_tag docker_auth ## push to docker hub - docker push "openedx/lms:latest" - docker push "openedx/lms:${GITHUB_SHA}" - docker push "openedx/lms-dev:latest" - docker push "openedx/lms-dev:${GITHUB_SHA}" - docker push "openedx/cms:latest" - docker push "openedx/cms:${GITHUB_SHA}" - docker push "openedx/cms-dev:latest" - docker push "openedx/cms-dev:${GITHUB_SHA}" - lint-imports: lint-imports From 0a2439de953c11c344a5cc73566c742bc127894c Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Tue, 11 Jul 2023 14:22:59 +0500 Subject: [PATCH 03/13] fix: docker multi-arch image push, code improvements as per review --- .github/workflows/docker-publish.yml | 2 +- Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7001d0e9f4ed..a1fe25d234ce 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -31,6 +31,6 @@ jobs: env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_build + run : make docker_tag_build_push diff --git a/Makefile b/Makefile index ede37851ef93..5a3f3cfe50b9 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # Do things in edx-platform .PHONY: base-requirements check-types clean \ compile-requirements detect_changed_source_translations dev-requirements \ - docker_auth docker_build docs extract_translations \ + docker_auth docker_tag_build_push docs extract_translations \ guides help lint-imports local-requirements pre-requirements pull \ pull_translations push_translations requirements shell swagger \ technical-docs test-requirements ubuntu-requirements upgrade-package upgrade @@ -145,7 +145,7 @@ check-types: ## run static type-checking tests docker_auth: echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin -docker_build: docker_auth +docker_tag_build_push: docker_auth docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker buildx build -t openedx/lms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . From 8cada857b2c52888b1d7bcfb5fb6ddcc0e4d91e9 Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Mon, 17 Jul 2023 17:34:26 +0500 Subject: [PATCH 04/13] fix: code improvements to improve jobs execution time --- .github/workflows/docker-publish.yml | 58 ++++++++++++++++++++++++---- Makefile | 32 ++++++++------- 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index a1fe25d234ce..3b33455585d0 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,15 +1,15 @@ name: Push Docker Images on: + pull_request: push: branches: - master jobs: - # Push image to GitHub Packages. - # See also https://docs.docker.com/docker-hub/builds/ - push: - runs-on: ubuntu-latest - if: github.event_name == 'push' + # Setup checkout, buildx, QEMU and docker hub for all jobs. + setup: + runs-on: ubuntu-latest + # if: github.event_name == 'push' steps: - name: Checkout @@ -27,10 +27,54 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Build and Push docker image + - name: Build and push lms base docker image env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_tag_build_push + run : make docker_tag_build_push_lms + + # Push image to GitHub Packages. + # See also https://docs.docker.com/docker-hub/builds/ + # push_lms: + # runs-on: ubuntu-latest + # if: github.event_name == 'push' + # needs: setup + # steps: + # - name: Build and push lms base docker image + # env: + # DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + # DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + # run : make docker_tag_build_push_lms + push_lms_dev: + runs-on: ubuntu-latest + # if: github.event_name == 'push' + needs: setup + steps: + - name: Build and push lms dev docker image + env: + DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + run : make docker_tag_build_push_lms_dev + # push_cms: + # runs-on: ubuntu-latest + # if: github.event_name == 'push' + # needs: setup + # steps: + # - name: Build and push cms base docker image + # env: + # DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + # DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + # run : make docker_tag_build_push_cms + + push_cms_dev: + runs-on: ubuntu-latest + # if: github.event_name == 'push' + needs: setup + steps: + - name: Build and push cms dev docker image + env: + DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + run : make docker_tag_build_push_cms_dev \ No newline at end of file diff --git a/Makefile b/Makefile index ce3d2accd2da..2674f613807e 100644 --- a/Makefile +++ b/Makefile @@ -145,21 +145,23 @@ check-types: ## run static type-checking tests docker_auth: echo "$$DOCKERHUB_PASSWORD" | docker login -u "$$DOCKERHUB_USERNAME" --password-stdin -docker_tag_build_push: docker_auth - docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . - docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . - docker buildx build -t openedx/lms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . - docker buildx build -t openedx/lms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . - docker buildx build -t openedx/cms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . - docker buildx build -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . - docker buildx build -t openedx/cms:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . - docker buildx build -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . - -# These commads can be use to build the single arch image locally -# DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development -t openedx/lms-dev -# DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production -t openedx/lms -# DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development -t openedx/cms-dev -# DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production -t openedx/cms +docker_build: docker_auth + DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development -t openedx/lms-dev + DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production -t openedx/lms + DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development -t openedx/cms-dev + DOCKER_BUILDKIT=1 docker build . --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production -t openedx/cms + +docker_tag_build_push_lms: docker_auth + docker buildx build -t openedx/lms:latest -t openedx/lms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . + +docker_tag_build_push_lms_dev: docker_auth + docker buildx build -t openedx/lms-dev:latest -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + +docker_tag_build_push_cms:docker_auth + docker buildx build -t openedx/cms:latest -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production --push . + +docker_tag_build_push_cms_dev:docker_auth + docker buildx build -t openedx/cms-dev:latest -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . lint-imports: lint-imports From cb965f37a96af9e862c06f2aa49b37ebec2ad2bf Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Mon, 17 Jul 2023 17:36:33 +0500 Subject: [PATCH 05/13] fix: code improvements to improve jobs execution time --- .github/workflows/docker-publish.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3b33455585d0..3d5ea0b940be 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,7 +6,6 @@ on: branches: - master jobs: - # Setup checkout, buildx, QEMU and docker hub for all jobs. setup: runs-on: ubuntu-latest # if: github.event_name == 'push' From 3f5cc4c3042f8d6f7e832c0c8996c9c28e25228a Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Mon, 17 Jul 2023 17:40:50 +0500 Subject: [PATCH 06/13] fix: code improvements to improve jobs execution time --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 3d5ea0b940be..ddad1eddde15 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -7,7 +7,7 @@ on: - master jobs: setup: - runs-on: ubuntu-latest + runs-on: ubuntu-latest # if: github.event_name == 'push' steps: From 3df5251a76c21d3c5d3eaafdfdb5509601970f8f Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Mon, 17 Jul 2023 19:02:20 +0500 Subject: [PATCH 07/13] fix: code improvements to improve jobs execution time --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2674f613807e..33d4af11381a 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,8 @@ # Do things in edx-platform .PHONY: base-requirements check-types clean \ compile-requirements detect_changed_source_translations dev-requirements \ - docker_auth docker_tag_build_push docs extract_translations \ + docker_auth docker_build docker_tag_build_push_lms docker_tag_build_push_lms_dev \ + docker_tag_build_push_cms docker_tag_build_push_cms_dev docs extract_translations \ guides help lint-imports local-requirements migrate migrate-lms migrate-cms \ pre-requirements pull pull_translations push_translations requirements shell swagger \ technical-docs test-requirements ubuntu-requirements upgrade-package upgrade From 519c4a066325357c171b5cab2ab54be5a175a237 Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Tue, 18 Jul 2023 01:22:26 +0500 Subject: [PATCH 08/13] fix: code improvements to improve jobs execution time --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 33d4af11381a..2dc5b823e7b2 100644 --- a/Makefile +++ b/Makefile @@ -156,13 +156,15 @@ docker_tag_build_push_lms: docker_auth docker buildx build -t openedx/lms:latest -t openedx/lms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . docker_tag_build_push_lms_dev: docker_auth - docker buildx build -t openedx/lms-dev:latest -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker_tag_build_push_cms:docker_auth docker buildx build -t openedx/cms:latest -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production --push . docker_tag_build_push_cms_dev:docker_auth - docker buildx build -t openedx/cms-dev:latest -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . + docker buildx build -t openedx/cms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . + docker buildx build -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . lint-imports: lint-imports From 9d3e87f42a7f93ccae8dfe3424b97bc1e5b88a3d Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Tue, 18 Jul 2023 12:46:24 +0500 Subject: [PATCH 09/13] fix: code improvements to improve jobs execution time --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2dc5b823e7b2..a2f0672bb984 100644 --- a/Makefile +++ b/Makefile @@ -159,10 +159,10 @@ docker_tag_build_push_lms_dev: docker_auth docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . -docker_tag_build_push_cms:docker_auth +docker_tag_build_push_cms: docker_auth docker buildx build -t openedx/cms:latest -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production --push . -docker_tag_build_push_cms_dev:docker_auth +docker_tag_build_push_cms_dev: docker_auth docker buildx build -t openedx/cms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . docker buildx build -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . From 428a7121d77fbf616efa662d050927dedd018471 Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Tue, 18 Jul 2023 16:07:25 +0500 Subject: [PATCH 10/13] fix: code improvements for parallel job for docker multi-arch images --- .github/workflows/docker-publish.yml | 59 +++++----------------------- 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ddad1eddde15..34c33f02f64e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,9 +6,16 @@ on: branches: - master jobs: - setup: + # Push image to GitHub Packages. + # See also https://docs.docker.com/docker-hub/builds/ + push: runs-on: ubuntu-latest - # if: github.event_name == 'push' + # if: github.event_name == 'push' + strategy: + matrix: + variant: + - "lms_dev" + - "cms_dev" steps: - name: Checkout @@ -30,50 +37,4 @@ jobs: env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_tag_build_push_lms - - # Push image to GitHub Packages. - # See also https://docs.docker.com/docker-hub/builds/ - # push_lms: - # runs-on: ubuntu-latest - # if: github.event_name == 'push' - # needs: setup - # steps: - # - name: Build and push lms base docker image - # env: - # DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - # DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - # run : make docker_tag_build_push_lms - - push_lms_dev: - runs-on: ubuntu-latest - # if: github.event_name == 'push' - needs: setup - steps: - - name: Build and push lms dev docker image - env: - DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_tag_build_push_lms_dev - - # push_cms: - # runs-on: ubuntu-latest - # if: github.event_name == 'push' - # needs: setup - # steps: - # - name: Build and push cms base docker image - # env: - # DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - # DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - # run : make docker_tag_build_push_cms - - push_cms_dev: - runs-on: ubuntu-latest - # if: github.event_name == 'push' - needs: setup - steps: - - name: Build and push cms dev docker image - env: - DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} - DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_tag_build_push_cms_dev \ No newline at end of file + run : make docker_tag_build_push_${{matrix.variant}} \ No newline at end of file From 17bc94f8735bee72049a20f1c830fe8769e61aab Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Tue, 18 Jul 2023 17:37:23 +0500 Subject: [PATCH 11/13] fix: code improvements for parallel job for docker multi-arch images --- Makefile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index a2f0672bb984..2d6d5b5fe1ef 100644 --- a/Makefile +++ b/Makefile @@ -156,15 +156,13 @@ docker_tag_build_push_lms: docker_auth docker buildx build -t openedx/lms:latest -t openedx/lms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target production --push . docker_tag_build_push_lms_dev: docker_auth - docker buildx build -t openedx/lms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . - docker buildx build -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . + docker buildx build -t openedx/lms-dev:latest -t openedx/lms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=lms --build-arg SERVICE_PORT=8000 --target development --push . docker_tag_build_push_cms: docker_auth docker buildx build -t openedx/cms:latest -t openedx/cms:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target production --push . docker_tag_build_push_cms_dev: docker_auth - docker buildx build -t openedx/cms-dev:latest --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . - docker buildx build -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . + docker buildx build -t openedx/cms-dev:latest -t openedx/cms-dev:${GITHUB_SHA} --platform linux/amd64,linux/arm64 --build-arg SERVICE_VARIANT=cms --build-arg SERVICE_PORT=8010 --target development --push . lint-imports: lint-imports From 5ad5bb5452c1f82d23aa3ac80f06d53abf4a2b81 Mon Sep 17 00:00:00 2001 From: Salman Nawaz Date: Wed, 19 Jul 2023 11:37:06 +0500 Subject: [PATCH 12/13] fix: docker multi-arch images --- .github/workflows/docker-publish.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 34c33f02f64e..e3eb456eaf95 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,7 +1,6 @@ name: Push Docker Images on: - pull_request: push: branches: - master @@ -10,12 +9,15 @@ jobs: # See also https://docs.docker.com/docker-hub/builds/ push: runs-on: ubuntu-latest - # if: github.event_name == 'push' + if: github.event_name == 'push' + strategy: matrix: variant: - "lms_dev" - "cms_dev" + - "cms" + - "lms" steps: - name: Checkout From f1eb67c8acc5a387d703f445ebfb89b7f56a12ac Mon Sep 17 00:00:00 2001 From: salmannawaz Date: Thu, 27 Jul 2023 14:04:36 +0500 Subject: [PATCH 13/13] fix: resolve comment for code improvement --- .github/workflows/docker-publish.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index e3eb456eaf95..ff73e14fce53 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -39,4 +39,5 @@ jobs: env: DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} - run : make docker_tag_build_push_${{matrix.variant}} \ No newline at end of file + run : make docker_tag_build_push_${{matrix.variant}} + \ No newline at end of file