Skip to content

openedx-actions/tutor-plugin-build-openedx

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Tests Open edX Discussion docs.tutor.overhang.io hack.d Lawrence McDaniel
AWS Docker Kubernetes

tutor-plugin-build-openedx

Github Action that uses Tutor to build a Docker image for openedx, and uploads to an AWS Elastic Container Registry repository.

This action was originally created to work seamlessly with AWS EKS Kubernetes and ECR resources created by the Terraform modules contained in Cookiecutter Tutor Open edX Production Devops Tools but it should also work with your own custom workflows.

About the openedx image

This is a production-ready image of the Open edX learning management system, substantially consisting of the repository https://github.com/openedx/edx-platform.

Usage

name: Example workflow

on: workflow_dispatch

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # required antecedent
      - uses: actions/checkout

      # required antecedent
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials
        with:
          aws-access-key-id: ${{ secrets.THE_NAME_OF_YOUR_AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.THE_NAME_OF_YOUR_AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-2

      # install and configure tutor and kubectl
      - name: Configure Github workflow environment
        uses: openedx-actions/tutor-k8s-init@v1

      # This action.
      # Note:
      # aws-ecr-repo is optional. The default value is openedx
      - name: Build the image and upload to AWS ECR
        uses: openedx-actions/tutor-plugin-build-openedx@v1
        with:
          aws-ecr-repo: openedx
name: Example workflow

on: workflow_dispatch

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # required antecedent
      - uses: actions/checkout

      # required antecedent
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials
        with:
          aws-access-key-id: ${{ secrets.THE_NAME_OF_YOUR_AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.THE_NAME_OF_YOUR_AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-2

      # install and configure tutor and kubectl
      - name: Configure Github workflow environment
        uses: openedx-actions/tutor-k8s-init@v1

      # This action.
      # Note:
      # aws-ecr-repository is optional. The default value is openedx
      # openedx-repository is optional. The default value is ''
      # openedx-version is optional. The default value is ''
      - name: Build the image and upload to AWS ECR
        uses: openedx-actions/tutor-plugin-build-openedx@v1
        with:
          aws-ecr-repository: openedx
          openedx-repository: https://github.com/openedx/edx-platform.git
          openedx-version: master #in this case the main branch is specified. You may also specify a tag

Contributing

Pull requests are welcome! Please note that this repository uses semantic release for automated processessing of commits and pull requests, and package publication for new releases. Please note the following about your commit message:

  • pull requests can be approved and merged by any two authorized core committers
  • only the 'next' branch can be merged to main. Thus, your Pull Request should be created from the 'next' branch
  • we use Angular commit message format. See below
  • use the imperative, present tense: "change" not "changed" nor "changes"
  • don't capitalize the first letter
  • no dot (.) at the end

Branches associated with CI automation

Branch Description
main commits are prohibited. Only accepts automated merges via Github Actions
next this is the branch that I (Lawrence) primarly use for normal code maintenance
next-major special use, in the unlikely event that we ever bump beyond version 1.x.x
beta if you're working on something large then merge here before doing anything in 'next'
alph if you're doing some really big then start here

About the Angular commit message format

An example:

  git commit -m "fix: fix bug in the yadda yadda step"

Your commit message should be prefixed with one of the following:

Prefix Description
build changes that affect the build system or external dependencies (example - scopes: gulp, broccoli, npm)
ci changes to our CI configuration files and scripts (examples: Github Actions, CircleCi, SauceLabs)
docs documentation only changes
feat a new feature
fix a bug fix
perf a code change that improves performance
refactor a code change that neither fixes a bug nor adds a feature
test adding missing tests or correcting existing tests

More generally, less is more: don't use two words where one will suffice. Simple words are better than fancy words.