Skip to content
Snippets Groups Projects
.gitlab-ci.yml 4.79 KiB
Newer Older
Nico's avatar
Nico committed
image: briar/ci-image-android:latest
Nico's avatar
Nico committed
  - build
  - releasebuild
variables:
  GIT_SUBMODULE_STRATEGY: recursive
Nico's avatar
Nico committed
  JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
Nico's avatar
Nico committed
before_script:
  - set -e
  - export GRADLE_USER_HOME=$PWD/.gradle
  # make sure the CI doesn't run in detached state so that we can
  # extract the branch name during build
  - git checkout "$CI_COMMIT_REF_NAME"
Nico's avatar
Nico committed

after_script:
  # these file change every time and should not be cached
  - rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock
  - rm -fr $GRADLE_USER_HOME/caches/*/plugin-resolution/

cache:
  key: "$CI_COMMIT_REF_SLUG"
  paths:
    - .gradle/wrapper
    - .gradle/caches

ktlint:
  stage: test
  script:
    - git submodule update
    - ./gradlew --no-daemon :check
Nico's avatar
Nico committed
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never # avoids duplicate jobs for branch and MR
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: always
    - when: always
Nico's avatar
Nico committed

Nico's avatar
Nico committed
  stage: build
  script:
Nico's avatar
Nico committed
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=nightly -x kaptKotlin packageUberJarForCurrentOS
Nico's avatar
Nico committed
    - mv build/compose/jars/Briar-*.jar ./briar-desktop.jar
  artifacts:
    paths:
      - briar-desktop.jar
    expire_in: 2 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

b_bullseye_deb:
Nico's avatar
Nico committed
  stage: build
  script:
Nico's avatar
Nico committed
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=nightly -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-debian-bullseye.deb
Nico's avatar
Nico committed
  artifacts:
    paths:
      - briar-desktop-debian-bullseye.deb
    expire_in: 2 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

b_20_ubuntu_deb:
  image: briar/ci-image-android:ubuntu-20
  stage: build
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=nightly -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-ubuntu-20.04.deb
  artifacts:
    paths:
      - briar-desktop-ubuntu-20.04.deb
    expire_in: 2 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

b_18_ubuntu_deb:
  image: briar/ci-image-android:ubuntu-18
  stage: build
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=nightly -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-ubuntu-18.04.deb
  artifacts:
    paths:
      - briar-desktop-ubuntu-18.04.deb
Nico's avatar
Nico committed
    expire_in: 2 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

rb_jar:
  stage: releasebuild
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=beta -x kaptKotlin packageUberJarForCurrentOS
    - mv build/compose/jars/Briar-*.jar ./briar-desktop.jar
  artifacts:
    paths:
      - briar-desktop.jar
    expire_in: 2 days
  only:
    - tags

rb_bullseye_deb:
  stage: releasebuild
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=beta -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-debian-bullseye.deb
  artifacts:
    paths:
      - briar-desktop-debian-bullseye.deb
    expire_in: 2 days
  only:
    - tags

rb_20_ubuntu_deb:
  image: briar/ci-image-android:ubuntu-20
  stage: releasebuild
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=beta -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-ubuntu-20.04.deb
  artifacts:
    paths:
      - briar-desktop-ubuntu-20.04.deb
    expire_in: 2 days
  only:
    - tags

rb_18_ubuntu_deb:
  image: briar/ci-image-android:ubuntu-18
  stage: releasebuild
  script:
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64 --no-daemon kaptKotlin
    - ./gradlew -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 --no-daemon -PbuildType=beta -x kaptKotlin packageDeb
    - mv build/compose/binaries/main/deb/*.deb ./briar-desktop-ubuntu-18.04.deb
  artifacts:
    paths:
      - briar-desktop-ubuntu-18.04.deb
    expire_in: 2 days
  only:
    - tags