diff --git a/.github/workflows/push-docker-images.yml b/.github/workflows/push-docker-images.yml index 9425025..1f66e70 100644 --- a/.github/workflows/push-docker-images.yml +++ b/.github/workflows/push-docker-images.yml @@ -3,6 +3,13 @@ name: Build and Publish Docker Images on: workflow_dispatch: inputs: + image_to_build: + description: "Select an image that you want to build and push" + type: choice + options: + - commerce-coordinator + - course-discovery + - credentials branch: description: "Target branch from which the source dockerfile from image will be sourced" @@ -15,102 +22,34 @@ on: - '**' jobs: + set-matrix: + runs-on: ubuntu-22.04 + outputs: + docker_images: ${{ steps.set-images-input.outputs.images_to_build }} + steps: + - name: Check out code + uses: actions/checkout@v4 + + - id: set-images-input + run: | + image_to_build="${{ github.event.inputs.image_to_build }}" + if [[ -n "$image_to_build" ]]; then + images=$(jq -c --arg name "$image_to_build" '[.[] | select(.name == $name)]' images-data.json) + echo "$images" + echo "images_to_build=$images" >> $GITHUB_OUTPUT + else + images=$(jq -c '.' images-data.json) + echo "$images" + echo "images_to_build=$images" >> $GITHUB_OUTPUT + fi push: runs-on: ubuntu-22.04 continue-on-error: true + needs: [set-matrix] strategy: matrix: - images: -# - image_name: commerce-coordinator -# name: commerce coordinator -# os_platform: linux/arm64 -# target: app - -# - image_name: course-discovery -# name: course discovery -# os_platform: linux/arm64 -# target: dev -# owning_team_email: hunia.fatima@arbisoft.com - -# - image_name: credentials -# name: credentials -# os_platform: linux/arm64 -# target: dev -# owning_team_email: hunia.fatima@arbisoft.com -# -# - image_name: ecommerce -# name: ecommerce -# os_platform: linux/arm64 -# target: dev - - - image_name: edx-analytics-dashboard - name: edx analytics dashboard - os_platform: linux/arm64 - target: dev - -# - image_name: edx-analytics-data-api -# name: edx analytics data api -# os_platform: linux/arm64 -# target: dev -# -# - image_name: edx-exams -# name: edx exams -# os_platform: linux/arm64 -# target: app -# -# - dockerfile: edx-platform -# image_name: cms-dev -# name: lms -# os_platform: linux/amd64,linux/arm64 -# target: development -# build_args: | -# SERVICE_VARIANT: cms -# SERVICE_PORT: 18010 -# -# - dockerfile: edx-platform -# image_name: lms-dev -# name: lms -# os_platform: linux/amd64,linux/arm64 -# target: development -# build_args: | -# SERVICE_VARIANT: lms -# SERVICE_PORT: 18000 -# -# - image_name: edx-notes-api -# name: edx notes api -# os_platform: linux/arm64 -# target: dev - - - image_name: enterprise-access - name: enterprise access - os_platform: linux/arm64 - target: devstack - -# - image_name: enterprise-catalog -# name: enterprise catalog -# os_platform: linux/arm64 -# target: legacy_devapp -# -# - image_name: enterprise-subsidy -# name: enterprise subsidy -# os_platform: linux/arm64 -# target: devstack -# -# - image_name: program-intent-engagement -# name: program intent engagement -# os_platform: linux/arm64 -# target: app -# -# - image_name: registrar -# name: registrar -# os_platform: linux/arm64 -# target: dev -# -# - image_name: xqueue -# name: xqueue -# os_platform: linux/arm64 -# target: dev + images: ${{ fromJson(needs.set-matrix.outputs.docker_images) }} steps: - name: Get tag name diff --git a/images-data.json b/images-data.json new file mode 100644 index 0000000..8a456e7 --- /dev/null +++ b/images-data.json @@ -0,0 +1,110 @@ +[ + { + "image_name": "commerce-coordinator", + "name": "commerce coordinator", + "os_platform": "linux/arm64", + "target": "app" + }, + { + "image_name": "course-discovery", + "name": "course discovery", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "credentials", + "name": "credentials", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "ecommerce", + "name": "ecommerce", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "edx-analytics-dashboard", + "name": "edx analytics dashboard", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "edx-analytics-data-api", + "name": "edx analytics data api", + "os_platform": "linux/arm64", + "target": "dev", + "owning_team_email": "cbrash@redventures.com" + }, + { + "image_name": "edx-exams", + "name": "edx exams", + "os_platform": "linux/arm64", + "target": "app", + "owning_team_email": "cbrash@redventures.com" + }, + { + "dockerfile": "edx-platform", + "image_name": "cms-dev", + "name": "lms", + "os_platform": "linux/amd64,linux/arm64", + "target": "development", + "build_args": { + "SERVICE_VARIANT": "cms", + "SERVICE_PORT": "18010" + }, + }, + { + "dockerfile": "edx-platform", + "image_name": "lms-dev", + "name": "lms", + "os_platform": "linux/amd64,linux/arm64", + "target": "development", + "build_args": { + "SERVICE_VARIANT": "lms", + "SERVICE_PORT": "18000" + } + }, + { + "image_name": "edx-notes-api", + "name": "edx notes api", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "enterprise-access", + "name": "enterprise access", + "os_platform": "linux/arm64", + "target": "devstack" + }, + { + "image_name": "enterprise-catalog", + "name": "enterprise catalog", + "os_platform": "linux/arm64", + "target": "legacy_devapp" + }, + { + "image_name": "enterprise-subsidy", + "name": "enterprise subsidy", + "os_platform": "linux/arm64", + "target": "devstack" + }, + { + "image_name": "program-intent-engagement", + "name": "program intent engagement", + "os_platform": "linux/arm64", + "target": "app" + }, + { + "image_name": "registrar", + "name": "registrar", + "os_platform": "linux/arm64", + "target": "dev" + }, + { + "image_name": "xqueue", + "name": "xqueue", + "os_platform": "linux/arm64", + "target": "dev" + } +]