-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: consolidating workflows to push images in one file
- Loading branch information
1 parent
ccb1147
commit 7a54f73
Showing
17 changed files
with
502 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
name: Build and Publish Docker Images | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
branch: | ||
description: "Target branch from which the source dockerfile from image will be sourced" | ||
|
||
schedule: | ||
- cron: "0 4 * * 1-5" # UTC Time | ||
|
||
# Added for testing purposes. Will remove once the PR is finalised | ||
pull_request: | ||
branches: | ||
- '**' | ||
|
||
jobs: | ||
push: | ||
runs-on: ubuntu-22.04 | ||
continue-on-error: true | ||
|
||
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: [email protected] | ||
|
||
# - image_name: credentials | ||
# name: credentials | ||
# os_platform: linux/arm64 | ||
# target: dev | ||
# owning_team_email: [email protected] | ||
# | ||
# - 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 | ||
|
||
steps: | ||
- name: Get tag name | ||
id: get-tag-name | ||
uses: actions/github-script@v7 | ||
with: | ||
script: | | ||
const tagName = "${{ github.event.inputs.branch }}" || 'latest'; | ||
console.log('Will use tag: ' + tagName); | ||
return tagName; | ||
result-encoding: string | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: Login to DockerHub | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_PASSWORD }} | ||
|
||
- name: Build and push Dev Docker image | ||
uses: docker/build-push-action@v6 | ||
with: | ||
file: ./dockerfiles/${{matrix.images.dockerfile || matrix.images.image_name}}.Dockerfile | ||
push: true | ||
platforms: ${{ matrix.images.os_platform }} | ||
target: ${{ matrix.images.target }} | ||
tags: edxops/${{matrix.images.image_name}}-dev:${{ steps.get-tag-name.outputs.result }} | ||
|
||
- name: Send failure notification | ||
if: ${{ failure() && (matrix.images.owning_team_email) }} | ||
uses: dawidd6/action-send-mail@v3 | ||
with: | ||
server_address: email-smtp.us-east-1.amazonaws.com | ||
server_port: 465 | ||
username: ${{secrets.edx_smtp_username}} | ||
password: ${{secrets.edx_smtp_password}} | ||
subject: Push Image to docker.io/edxops failed in ${{matrix.images.name}} | ||
to: ${{matrix.images.owning_team_email}} | ||
from: github-actions <[email protected]> | ||
body: Push Image to docker.io/edxops for ${{matrix.images.name}} failed! For details see "github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
name: Build and Push Edx Exams Image | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
branch: | ||
description: "Target branch from which the source dockerfile from image will be sourced" | ||
|
||
schedule: | ||
- cron: "0 4 * * 1-5" # UTC Time | ||
|
||
jobs: | ||
build-and-push-image: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Get tag name | ||
id: get-tag-name | ||
uses: actions/github-script@v5 | ||
with: | ||
script: | | ||
const tagName = "${{ github.event.inputs.branch }}" || 'latest'; | ||
console.log('Will use tag: ' + tagName); | ||
return tagName; | ||
result-encoding: string | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v3 | ||
|
||
- name: Login to DockerHub | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKERHUB_USERNAME }} | ||
password: ${{ secrets.DOCKERHUB_PASSWORD }} | ||
|
||
- name: Build and push Dev Docker image | ||
uses: docker/build-push-action@v6 | ||
with: | ||
file: ./dockerfiles/edx-exams.Dockerfile | ||
push: true | ||
target: app | ||
tags: edxops/edx_exams:${{ steps.get-tag-name.outputs.result }} | ||
|
||
- name: Send failure notification | ||
if: failure() | ||
uses: dawidd6/action-send-mail@v3 | ||
with: | ||
server_address: email-smtp.us-east-1.amazonaws.com | ||
server_port: 465 | ||
username: ${{secrets.edx_smtp_username}} | ||
password: ${{secrets.edx_smtp_password}} | ||
subject: Push Image to docker.io/edxops failed in edx-exams | ||
to: [email protected] | ||
from: github-actions <[email protected]> | ||
body: Push Image to docker.io/edxops for edx-exams failed! For details see "github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
FROM ubuntu:focal as app | ||
FROM ubuntu:focal AS app | ||
MAINTAINER [email protected] | ||
|
||
|
||
|
@@ -37,11 +37,11 @@ RUN rm -rf /var/lib/apt/lists/* | |
RUN ln -s /usr/bin/python3 /usr/bin/python | ||
|
||
RUN locale-gen en_US.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US:en | ||
ENV LC_ALL en_US.UTF-8 | ||
ENV LANG=en_US.UTF-8 | ||
ENV LANGUAGE=en_US:en | ||
ENV LC_ALL=en_US.UTF-8 | ||
|
||
ENV DJANGO_SETTINGS_MODULE commerce_coordinator.settings.production | ||
ENV DJANGO_SETTINGS_MODULE=commerce_coordinator.settings.production | ||
|
||
EXPOSE 8140 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
FROM ubuntu:focal as base | ||
FROM ubuntu:focal AS base | ||
|
||
# System requirements | ||
# - git; Used to pull in particular requirements from github rather than pypi, | ||
|
@@ -35,12 +35,12 @@ ENV PATH="$NODE_ENV/bin:$PATH" | |
RUN npm install -g [email protected] | ||
|
||
RUN locale-gen en_US.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US:en | ||
ENV LC_ALL en_US.UTF-8 | ||
ENV DJANGO_SETTINGS_MODULE credentials.settings.production | ||
ENV OPENEDX_ATLAS_PULL true | ||
ENV CREDENTIALS_CFG "minimal.yml" | ||
ENV LANG=en_US.UTF-8 | ||
ENV LANGUAGE=en_US:en | ||
ENV LC_ALL=en_US.UTF-8 | ||
ENV DJANGO_SETTINGS_MODULE=credentials.settings.production | ||
ENV OPENEDX_ATLAS_PULL=true | ||
ENV CREDENTIALS_CFG="minimal.yml" | ||
|
||
EXPOSE 18150 | ||
RUN useradd -m --shell /bin/false app | ||
|
@@ -94,7 +94,7 @@ CMD gunicorn --workers=2 --name credentials -c /edx/app/credentials/credentials/ | |
|
||
# We don't switch back to the app user for devstack because we need devstack users to be | ||
# able to update requirements and generally run things as root. | ||
FROM base as dev | ||
FROM base AS dev | ||
USER root | ||
ENV DJANGO_SETTINGS_MODULE credentials.settings.devstack | ||
RUN pip install -r /edx/app/credentials/credentials/requirements/dev.txt | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.