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" # build some apps to check that cross-platform binaries are usable - "apps" test manifest: variables: GIT_STRATEGY: fetch image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/test-manifest:fb91ee18309ab981289aa818ab2a7824ef0567a1' 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 DATE=$(date +"%Y-%m-%d") - export IMAGE="${CI_REGISTRY_IMAGE}/${ARCH}/${TAG}" - export UID="${IMAGE}:${DATE}-${CI_JOB_ID}" - 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} ${UID} # Push the tags docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY docker push ${UID} 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 cerbero fedora amd64 docker: stage: "build docker" variables: ARCH: "amd64" TAG: "cerbero-fedora" CONTEXT_DIR: "docker/cerbero/" DOCKERFILE: "docker/cerbero/Dockerfile-fedora" extends: .base android docker: stage: "build docker" variables: ARCH: "amd64" TAG: "android" CONTEXT_DIR: "docker/android/" DOCKERFILE: "docker/android/Dockerfile" 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 cerbero fedora x86_64 local: extends: '.cerbero fedora x86_64' image: "${CI_REGISTRY_IMAGE}/amd64/cerbero-fedora:latest" when: 'manual' except: refs: - "master@gstreamer/gst-ci" build cerbero android universal local: extends: '.cerbero android universal' image: "${CI_REGISTRY_IMAGE}/amd64/cerbero-fedora:latest" when: 'manual' except: refs: - "master@gstreamer/gst-ci" build cerbero cross win32 local: extends: '.cerbero cross win32' image: "${CI_REGISTRY_IMAGE}/amd64/cerbero-fedora:latest" when: 'manual' except: refs: - "master@gstreamer/gst-ci" build cerbero cross win64 local: extends: '.cerbero cross win64' 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*' android universal examples local: extends: '.android universal examples' image: "${CI_REGISTRY_IMAGE}/amd64/android:latest" dependencies: - "build cerbero android universal local" when: 'manual' except: refs: - "master@gstreamer/gst-ci"