Skip to content
Snippets Groups Projects

Create CI

Merged Éloïs requested to merge create-ci into master
6 files
+ 293
4
Compare changes
  • Side-by-side
  • Inline
Files
6
.gitlab-ci.yml 0 → 100644
+ 93
0
 
stages:
 
- format
 
- build_and_test
 
- quality
 
- package
 
 
.env:
 
image: axiomteam/gecko-ci:v0.0.5
 
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
Loading