upend/.gitlab-ci.yml

140 lines
2.5 KiB
YAML

variables:
RUST_IMAGE: "rust:latest"
NODE_IMAGE: "node:lts"
CARGO_HOME: $CI_PROJECT_DIR/cargo
stages:
- lint
- build
- test
- release
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- target
- cargo
- webui/node_modules
lint:backend:
stage: lint
image: $RUST_IMAGE
script:
- rustup component add clippy
- make backend_lint
rules:
- changes:
- migrations/**/*
- src/**/*
- Cargo.lock
- Makefile
allow_failure: true
lint:backend_no_default_features:
stage: lint
image: $RUST_IMAGE
script:
- rustup component add clippy
- make backend_lint_no_default
rules:
- changes:
- migrations/**/*
- src/**/*
- Cargo.lock
- Makefile
allow_failure: true
lint:frontend:
stage: lint
image: $NODE_IMAGE
script:
- node --version && npm --version
- make frontend_lint
rules:
- allow_failure: true
lint:frontend_lib:
stage: lint
image: $NODE_IMAGE
script:
- node --version && npm --version
- make frontend_lib_lint
rules:
- allow_failure: true
build:backend:
stage: build
image: $RUST_IMAGE
script:
- rustc --version && cargo --version
- make backend
artifacts:
paths:
- target/release/upend
expire_in: 1 day
only:
changes:
- migrations/**/*
- src/**/*
- Cargo.lock
- Makefile
build:frontend:
stage: build
image: $NODE_IMAGE
script:
- node --version && npm --version
- make frontend
artifacts:
paths:
- webui/dist
- tools/upend_js
expire_in: 1 day
only:
changes:
- webui/**/*
- Makefile
test:backend:
stage: test
image: $RUST_IMAGE
script:
- make backend_test
only:
changes:
- migrations/**/*
- src/**/*
- Cargo.lock
- Makefile
test:backend_no_default_features:
stage: test
image: $RUST_IMAGE
script:
- make backend_test_no_default
only:
changes:
- migrations/**/*
- src/**/*
- Cargo.lock
- Makefile
allow_failure: true # remove at v1.0
package:
stage: release
image: $RUST_IMAGE
before_script:
- cd /tmp
- wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
- chmod +x linuxdeploy-x86_64.AppImage
- ./linuxdeploy-x86_64.AppImage --appimage-extract
- ln -s $PWD/squashfs-root/AppRun /usr/local/bin/linuxdeploy-x86_64.AppImage
- cd -
script:
- make package
artifacts:
paths:
- ./*.AppImage
only:
- tags