Skip to content
Matias Elo edited this page Dec 8, 2020 · 51 revisions

Introduction

The best source for general ODP information is opendataplane.org, this wiki focuses on development related subjects.

This repository contains the odp-linux implementation of the ODP API. It’s focus is to provide a clear reference implementation of the ODP API rather than a performance optimal implementation on a given platform. Other implementations can be found at Platform specific implementations.

GitHub Actions CI

GitHub Actions CI uses Docker containers to fill the following requirements:

  1. Not relay on distro package hosting.

  2. Be able to locally reproduce any CI run task.

To build and upload Docker images we use odp-docker-images repository. The distribution environments are described in the Dockerfiles. There is also a GitHub Actions workflow, which automatically builds and deploys the images.

To run Docker locally:

  1. install Docker (apt-get install docker.io)

  2. cd to ODP source directory

  3. copy and paste a run command from a GitHub Actions run, for example:

    docker run  -i -t -v `pwd`:/odp --shm-size 8g -e CC=clang ghcr.io/opendataplane/odp-docker-images/odp-ci-ubuntu_18.04-x86_64 /odp/scripts/ci/build_x86_64.sh

Where:

  • -i - means interactive. (For debug you can specify /bin/bash and run /odp/scripts/ci/build_x86_64.sh manually inside container. All container data will be lost on exit.)

  • -t, --tty Allocate a pseudo-TTY to make output visible on stdout,stderr.

  • -v pwd:/odp - means pass current host directory to container. (Directory is rw shared between host and container.)

  • -e CC=clang - pass environment variable inside container

  • opendataplane/odp-docker-images/odp-ci-ubuntu_18.04-x86_64 - container name in GitHub Container Registry

  • /odp/scripts/ci/build_x86_64.sh - the latest parameter is command to run after container started.

To run CI on custom images you need:

  1. Enable GitHub Container Registry for you account (link)

  2. Fork https://github.com/OpenDataPlane/odp-docker-images project to your local name space.

  3. Build and deploy custom images under your GitHub name space

  4. In your ODP project, edit the GitHub Actions workflow environment variable CONTAINER_NAMESPACE to point to your account in GitHub.

Note: Docker downloads and prepares images on the first run. Like git you need to do periodic 'docker pull' images in case new images were updated on cloud server.

CI Status

GitHub Actions

CI master branch

Details on regression, go to site.

Shippable

Details on regression, go to site.

CI master branch

Codecov

Detailed analysis, go to site.

Codecov
Clone this wiki locally