gstreamer/.gitlab-ci.yml
Xavier Claessens f7331ab4f8 Move Android NDK to /opt
It was installed in '/' which doesn't feel right. Installing it in /root
is also not correct because we want to run the build as user instead of
root in the future and cleanup.sh removes everything in /root. /opt
seems the best place because that's also the default location when
installing Android Studio.
2018-12-13 17:08:16 +00:00

163 lines
4 KiB
YAML

stages:
- "build docker"
- "preparation"
# Test just one basic build, if succeds procced to test the rest
- "build"
- "test"
# Run multiple builds and tests, multi-distro, multi-arch
- "full builds"
- "full tests"
test manifest:
variables:
GIT_STRATEGY: fetch
image: "registry.freedesktop.org/gstreamer/gst-ci/amd64/test-manifest:5856b05f3010136cebcaa9a90058572e008ae3f6"
stage: "preparation"
script:
- pytest-3 --junitxml=junit.xml --cov=build_manifest gitlab/build_manifest.py
coverage: '/TOTAL.*\s+(\d+%)$/'
artifacts:
reports:
junit:
- "junit.xml"
.base:
image: "docker:stable"
services:
- docker:dind
when: 'manual'
variables:
# When using dind, it's wise to use the overlayfs driver for
# improved performance.
DOCKER_DRIVER: "overlay2"
GIT_STRATEGY: fetch
script:
- export IMAGE="${CI_REGISTRY_IMAGE}/${ARCH}/${TAG}"
- export REF="${IMAGE}:${CI_COMMIT_SHA}"
- export LATEST="${IMAGE}:latest"
- docker build --pull -f ${DOCKERFILE} -t ${LATEST} ${CONTEXT_DIR}
# If we are in a fork, push the image to the reigstry regardless the branch
- |
if [ "$CI_PROJECT_NAMESPACE" != "gstreamer" ]; then
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
docker push ${LATEST}
fi
# Push the images to the upstream registry
- |
if [ "$CI_COMMIT_REF_NAME" = "master" -a "$CI_PROJECT_NAMESPACE" = "gstreamer" ]; then
# Tag the image with the git ref
docker image tag ${LATEST} ${REF}
# Push the tags
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
docker push ${REF}
docker push ${LATEST}
fi
alpine amd64 manifest builder docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "build-manifest"
CONTEXT_DIR: "docker/build_manifest/"
DOCKERFILE: "docker/build_manifest/Dockerfile"
extends: .base
test manifest amd64 docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "test-manifest"
CONTEXT_DIR: "docker/test_manifest/"
DOCKERFILE: "docker/test_manifest/Dockerfile"
extends: .base
gst-indent amd64 docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "gst-indent"
CONTEXT_DIR: "docker/indent/"
DOCKERFILE: "docker/indent/Dockerfile"
extends: .base
fedora amd64 docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "fedora"
CONTEXT_DIR: "docker/fedora/"
DOCKERFILE: "docker/fedora/Dockerfile"
extends: .base
# Cross compile image
android 28 amd64 docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "android_28"
CONTEXT_DIR: "docker/android/"
DOCKERFILE: "docker/android/Dockerfile"
extends: .base
cerbero fedora amd64 docker:
stage: "build docker"
variables:
ARCH: "amd64"
TAG: "cerbero-fedora"
CONTEXT_DIR: "docker/cerbero/"
DOCKERFILE: "docker/cerbero/Dockerfile-fedora"
extends: .base
include: "gitlab/ci_template.yml"
.build local:
extends: '.build'
when: 'manual'
# Test the build job against the latest build image tag and the local manifest
build fedora x86_64 local:
extends: '.build local'
stage: 'build'
image: "${CI_REGISTRY_IMAGE}/amd64/fedora:latest"
except:
refs:
- "master@gstreamer/gst-ci"
build android 28 local:
extends: '.build local'
variables:
MESON_ARGS: >
-Dbad=enabled
-Dbad:androidmedia=enabled
--cross-file /opt/android_arm64_28.txt
image: "${CI_REGISTRY_IMAGE}/amd64/android_28:latest"
except:
refs:
- "master@gstreamer/gst-ci"
build cerbero fedora x86_64 local:
extends: '.build cerbero fedora x86_64'
image: "${CI_REGISTRY_IMAGE}/amd64/cerbero-fedora:latest"
when: 'manual'
except:
refs:
- "master@gstreamer/gst-ci"
.test fedora x86_64 local:
image: '${CI_REGISTRY_IMAGE}/amd64/fedora:latest'
extends: '.test'
dependencies:
- build fedora x86_64 local
when: 'manual'
except:
refs:
- "master@gstreamer/gst-ci"
check fedora local:
extends: '.test fedora x86_64 local'
variables:
TEST_SUITE: 'check.gst*'