Skip to content

CI/CD pipeline for building and publishing multiple 🐳 containers as microservices within a mono repository.

License

Notifications You must be signed in to change notification settings

moz-mdauer/orion

This branch is 1 commit ahead of, 14 commits behind MozillaSecurity/orion:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d7db9cc Β· Apr 14, 2025
Jun 13, 2024
Sep 16, 2019
Feb 16, 2021
Mar 19, 2021
Jan 5, 2025
Oct 31, 2024
Apr 14, 2025
Mar 15, 2022
Jan 21, 2021
Dec 2, 2024
Mar 17, 2021
Apr 5, 2019
Jul 9, 2024
Jan 22, 2021
Jan 22, 2021
Oct 5, 2023
Dec 2, 2024
Jan 7, 2025
Jul 26, 2023
Jul 26, 2023

Repository files navigation

Orion logo

Task Status Matrix

Monorepo for building and publishing multiple Docker containers as microservices within a single repository.

Table of Contents

What is Orion?

Orion is a build environment for containerized services we run in our Fuzzing infrastructure (eg. libFuzzer).

For spawning a cluster of Docker containers at EC2 or other cloud providers, see the parent project Laniakea.

How does it operate?

CI and CD are performed autonomously with Taskcluster and the Orion Decision service. A build process gets initiated only if a file of a particular service has been modified, or if a parent image is modified. Each image is either tagged with the latest revision or latest before being published to the Docker registry and as Taskcluster artifacts. For more information about each service take a look in the corresponding README.md of each service or check out the Wiki pages for FAQs and a Docker cheat sheet.

Build Instructions and Development

Usage

You can build, test and push locally, which is great for testing locally. The commands below are general, and each service may have more specific instructions defined in the README.md of the service.

TAG=dev
docker build -t mozillasecurity/service:$TAG ../.. -f Dockerfile

... or to test the latest build:

TAG=latest

Running the fuzzer locally:

eval $(TASKCLUSTER_ROOT_URL=https://community-tc.services.mozilla.com taskcluster signin)
LOGS="logs-$(date +%Y%m%d%H%M%S)"
mkdir -p "$LOGS"
docker run --rm -e TASKCLUSTER_ROOT_URL -e TASKCLUSTER_CLIENT_ID -e TASKCLUSTER_ACCESS_TOKEN -it -v "$(pwd)/$LOGS":/logs mozillasecurity/service:$TAG 2>&1 | tee "$LOGS/live.log"

... add any environment variables required by the fuzzer using -e VAR=value. Some fuzzer images alter kernel sysctls and will require docker run --privileged.

Testing

Before a build task is initiated in Taskcluster, each shell script and Dockerfile undergo a linting and testing process which may or may not abort each succeeding task. To ensure your Dockerfile passes, you are encouraged to install the pre-commit hook (pre-commit install) prior to commit, and to run any tests defined in the service folder before pushing your commit.

About

CI/CD pipeline for building and publishing multiple 🐳 containers as microservices within a mono repository.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 65.3%
  • Shell 30.7%
  • Dockerfile 4.0%