This Github account is used to maintain and build reusable open source extensions for Sesam.
The Docker images are built and deployed to
- https://hub.docker.com/r/sesamcommunity/ , when it is a sesam-community repo or
- https://hub.docker.com/r/[contributer]/ , when it is a contributers repo
- The extension require a LICENSE file that makes this process legal. Apache License 2.0 is the preferred one.
- The extension should be usable from within Sesam
- The extension should be reusable
- The README file should contain an example
- CI&CD should be setup as described below
You can contribute either
- by forking an existing repo from the community github or
- by contacting a community member to get your repo created in sesam-community so that the proper setup is granted.
Steps to build your own fork:
- Sign up at Dockerhub if you don't have an account
- Prepare your repo & branch
- Set up CI&CD as described below
- Share your improvements using Pull Requests
For repo without a CI/CD setup, keep reading. Otherwise, if travis is already in action, jump to section "how to migrate from travis-ci to github-actions?"
CI consists of building a docker image with the updates.
CD consists of pushing a docker image with the updates. pushes to 'master' branch publishes 'development' image tag while releases publish image with the release tag.
With GithubActions (preferred)
- Make sure DOCKER_USERNAME and DOCKER_PASSWORD secrets are available to the repo at repo settings->secrets or organization settings->secrets. To push the image to an organization namespace on docker hub -that DOCKER_USERNAME has access to-, define also DOCKER_ORGNAME secret.
- Make sure the Dockerfile if in the top folder of the repository. That is what the action code expects.
- Add 'Sesam Community CI&CD Workflow' action.
- If sesam-community repo, go to Actions and click "Set up this workflow"
- If private repo, do either of followings:
- fork [this] (https://github.com/sesam-community/.github) and add the action via github
- execute this on your local machine inside the repo
mkdir -p .github/workflows/ && curl -s "https://raw.githubusercontent.com/sesam-community/.github/master/workflow-templates/sesam-community-ci-cd.yml" > .github/workflows/sesam-community-ci-cd.yml
- if docker repo owner and github repo owner are not literally identical, uncomment and set DOCKER_REPO_NAME in the action code
- commit
With Travis(Deprecated)
- Sign up to Travis CI with your Github account
- Enable the forked repository inside Travis CI
- Add your DOCKER_USERNAME and DOCKER_PASSWORD as environment variables for the build inside Travis CI
- Travis CI will build and deploy once you create a new release tag in your repository.
- delete
.travis.yml
file - Setup CI&CD with GithubActions as described above
- add new status badge to README. Delete status badge for travis-ci, if any.
- if md file: Replace
GITHUB_REPO_NAME
below and add[![SesamCommunity CI&CD](https://github.com/sesam-community/<GITHUB_REPO_NAME>/actions/workflows/sesam-community-ci-cd.yml/badge.svg)](https://github.com/sesam-community/<GITHUB_REPO_NAME>/actions/workflows/sesam-community-ci-cd.yml)
- if rst file: Replace
GITHUB_REPO_NAME
below and add.. image:: https://github.com/sesam-community/<GITHUB_REPO_NAME>/actions/workflows/sesam-community-ci-cd.yml/badge.svg :target: https://github.com/sesam-community/<GITHUB_REPO_NAME>/actions/workflows/sesam-community-ci-cd.yml
- if md file: Replace
A: Just send an email to baard.johansen@sesam.io with a link to the repository and we'll sort it out!