gecko/.gitlab-ci.yml

94 lines
1.9 KiB
YAML

stages:
- format
- build_and_test
- quality
- package
.env:
image: axiomteam/gecko-ci:v0.0.6
tags:
- redshift
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
stage: format
script:
- cargo fmt -- --version
- cargo fmt -- --check
- flutter format --set-exit-if-changed lib packages/dubp_rs/lib/dubp.dart
build_and_test:
extends: .env
rules:
- if: $CI_COMMIT_REF_NAME =~ /^wip*$/
when: manual
- if: $CI_COMMIT_TAG || $CI_MERGE_REQUEST_ID
- when: manual
stage: build_and_test
tags:
- redshift
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
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
stage: quality
script:
- cargo deny -V
- cargo deny check
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