ci_template.yml 1.73 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
stages:
  - "manifest"
  - "build"

variables:
  GIT_STRATEGY: none

manifest:
  image: "fedora"
  stage: "manifest"
  script:
    - dnf install -y python3-requests
    - curl -o build_manifest.py https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/build_manifest.py
    - python3 build_manifest.py
    - cat manifest.xml
  artifacts:
    expire_in: "2 days"
    paths:
      - "manifest.xml"

.build:
  stage: "build"
  dependencies:
    - "manifest"
  variables:
    CC: "ccache gcc"
    CXX: "ccache g++"
    CCACHE_BASEDIR: "${CI_PROJECT_DIR}"
    CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
    MAIN_DIR: '${CI_PROJECT_DIR}'
    MESON_ARGS: >
      -Dpython=enabled
      -Dlibav=enabled
      -Dugly=enabled
      -Dbad=enabled
      -Ddevtools=enabled
      -Dges=enabled
      -Drtsp_server=enabled
39
      -Dvaapi=enabled
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
      -Dsharp=disabled

  script:
    # Not sure why, but permission errors else
    # https://gitlab.freedesktop.org/alatiera/gstreamer/-/jobs/41441
    - cp -r /gst-build/ . && cd gst-build
    - ./git-update --no-interaction --manifest="${CI_PROJECT_DIR}/manifest.xml"
    - meson build/ $MESON_ARGS
    - ninja -C build/
  after_script:
    - cd gst-build/
    # Clean the artifacts packages to avoid copying "useless" build products.
    - rm $(find build -name "*.o") $(find -name "*.a")
    # Clean the .git repos since we won't need them anymore
    - rm -rf subprojects/*/.git/
    - rm -rf build/subprojects/*/.git/
  cache:
    paths:
      - "${CCACHE_DIR}"
  artifacts:
    expire_in: 6hours
    when: always
    paths:
      - "manifest.xml"
64
      # - "gst-build/"
65 66 67 68 69

build fedora x86_64:
  extends: .build
  image: "registry.freedesktop.org/gstreamer/gst-ci/amd64/fedora-build:9e0abc3c3be3cf09d0f2272710439b41fbbafdaf"