add CI for gst-examples android build
authorMatthew Waters <matthew@centricular.com>
Sun, 24 Mar 2019 06:56:01 +0000 (17:56 +1100)
committerMatthew Waters <matthew@centricular.com>
Wed, 27 Mar 2019 01:11:31 +0000 (12:11 +1100)
.gitlab-ci.yml
gitlab/build_manifest.py
gitlab/ci_template.yml

index 60c9cf5..fe6844a 100644 (file)
@@ -7,6 +7,8 @@ stages:
   # 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:
@@ -172,3 +174,13 @@ 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"
index 0619847..ec8901a 100755 (executable)
@@ -28,6 +28,7 @@ GSTREAMER_MODULES: List[str] = [
     'gst-rtsp-server',
     'gstreamer-vaapi',
     'gst-integration-testsuites',
+    'gst-examples',
 ]
 
 MANIFEST_TEMPLATE: str = """<?xml version="1.0" encoding="UTF-8"?>
index 5abde30..dea8fe1 100644 (file)
@@ -6,8 +6,11 @@ stages:
   # 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'
 
 variables:
+  ANDROID_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/android:2019-03-26-196225'
   CERBERO_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/cerbero-fedora:7ed820aa1fcf95938cc161e397b1bf455f1f5b74'
   FEDORA_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/fedora:fb91ee18309ab981289aa818ab2a7824ef0567a1'
   INDENT_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/gst-indent:6f7e01e1e30a73efa880acdc8e911f1f20c58dbb'
@@ -637,3 +640,53 @@ build cerbero cross win64:
   except:
     variables:
       - $CI_PROJECT_NAME == "cerbero"
+
+#
+# Build an Android App using the android binaries
+#
+.android universal examples:
+  image: $ANDROID_IMAGE
+  stage: 'apps'
+  variables:
+    EXAMPLES_HOME: ${CI_PROJECT_DIR}/examples
+    GSTREAMER_ROOT_ANDROID: ${CI_PROJECT_DIR}/examples/cerbero-android-universal
+  script:
+    - mkdir -p ${EXAMPLES_HOME}
+    - curl -o clone_manifest_ref.py https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/clone_manifest_ref.py
+    - chmod +x clone_manifest_ref.py
+    - ./clone_manifest_ref.py --manifest manifest.xml --project gst-examples --destination ${EXAMPLES_HOME}/gst-examples
+    - rm clone_manifest_ref.py
+
+    # extract our binaries
+    - rm -f gstreamer-1.0-android-universal-*-runtime.tar.bz2
+    - mkdir ${GSTREAMER_ROOT_ANDROID}
+    - tar -C ${GSTREAMER_ROOT_ANDROID} -xf gstreamer-1.0-android-universal-*.tar.bz2
+
+    - chmod +x ${EXAMPLES_HOME}/gst-examples/playback/player/android/gradlew
+    - ${EXAMPLES_HOME}/gst-examples/playback/player/android/gradlew --no-search-upward --no-daemon --project-dir ${EXAMPLES_HOME}/gst-examples/playback/player/android assembleDebug
+  after_script:
+    - rm -rf ${GSTREAMER_ROOT_ANDROID}
+    - mv gstreamer-1.0-android-universal-*.tar.bz2 ${EXAMPLES_HOME}/
+  artifacts:
+    name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
+    expire_in: '5 days'
+    when: 'always'
+    paths:
+      - "manifest.xml"
+      - "${EXAMPLES_HOME}"
+
+android universal examples:
+  extends: ".android universal examples"
+  dependencies:
+    - "build cerbero android universal"
+  except:
+    variables:
+      - $CI_PROJECT_NAME == "cerbero"
+
+cerbero android universal examples:
+  extends: ".android universal examples"
+  dependencies:
+    - "cerbero android universal"
+  only:
+    variables:
+      - $CI_PROJECT_NAME == "cerbero"