Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.93 KiB
Newer Older
Éloïs's avatar
Éloïs committed
stages:
  - format
  - build_and_test
  - quality
Éloïs's avatar
Éloïs committed
  - package
Éloïs's avatar
Éloïs committed

.env:
poka's avatar
poka committed
  image: axiomteam/gecko-ci:v0.0.7
Éloïs's avatar
Éloïs committed
  tags:
poka's avatar
poka committed
    - p2plegal
Éloïs's avatar
Éloïs committed
  before_script:
    - rustup show
    - rustc --version && cargo --version

format:
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
    - when: manual
Éloïs's avatar
Éloïs committed
  stage: format
  script:
    - cargo fmt -- --version
    - cargo fmt -- --check
    - flutter format --set-exit-if-changed lib packages/dubp_rs/lib/dubp.dart
Éloïs's avatar
Éloïs committed
build_and_test:
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
    - when: manual
Éloïs's avatar
Éloïs committed
  stage: build_and_test
  tags:
poka's avatar
poka committed
    - p2plegal
Éloïs's avatar
Éloïs committed
  script: 
    - RUSTFLAGS="-D warnings" cargo make
    - cd packages/dubp_rs && flutter pub get && cd ../..
    - flutter analyze
    - cargo test
    # - flutter test

lint:
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
    - when: manual
Éloïs's avatar
Éloïs committed
  stage: quality
  script:
    - cargo clippy -- -V
    - cargo clippy --all --tests -- -D warnings --verbose
    
audit_dependencies:
  extends: .env
  rules:
    - if: $CI_COMMIT_REF_NAME =~ /^wip*$/
      when: manual
    - if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
    - when: manual
Éloïs's avatar
Éloïs committed
  stage: quality
  script:
    - cargo deny -V
    - cargo deny check
Éloïs's avatar
Éloïs committed

releases:test:
  extends: .env
  stage: package
  allow_failure: true
  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - when: manual
  script:
    - bash "release/android/build-apk.sh" "$(date +%Y%m%d).$(date +%H%M).$(date +%S)+0"
  artifacts:
    paths: &releases_artifacts
      - work/bin/
    expire_in: 72h

releases:x64:
  extends: .env
  stage: package
  rules:
    - if: $CI_COMMIT_TAG
  script:
    - bash "release/android/build-apk.sh" "${CI_COMMIT_TAG#v}"
  artifacts:
    paths: *releases_artifacts
    expire_in: 1 mos