77 lines
1.8 KiB
YAML
77 lines
1.8 KiB
YAML
pipeline:
|
|
# Download the cache from S3
|
|
restore-cache:
|
|
image: plugins/s3-cache
|
|
pull: true
|
|
|
|
endpoint: https://s3.roosens.me
|
|
root: build-cache/
|
|
restore: true
|
|
|
|
secrets: [ cache_s3_access_key, cache_s3_secret_key ]
|
|
|
|
|
|
# =====BUILDING=====
|
|
build-backend:
|
|
image: rust:1.53-alpine
|
|
pull: true
|
|
group: build
|
|
environment:
|
|
- CARGO_HOME=.cargo
|
|
commands:
|
|
- apk add musl-dev postgresql-dev
|
|
- cargo build
|
|
|
|
|
|
# =====TESTING=====
|
|
test-backend:
|
|
image: rust:1.53-alpine
|
|
environment:
|
|
- CARGO_HOME=.cargo
|
|
commands:
|
|
- apk add musl-dev postgresql-dev
|
|
- cargo test
|
|
|
|
|
|
# =====LINTING=====
|
|
lint-backend:
|
|
image: rust:1.53-alpine
|
|
group: lint
|
|
environment:
|
|
- CARGO_HOME=.cargo
|
|
commands:
|
|
- apk add musl-dev postgresql-dev
|
|
- cargo fmt -- --check
|
|
# This is run here because it requires compilation
|
|
- cargo clippy --all-targets -- -D warnings
|
|
|
|
|
|
# =====REBUILD & FLUSH CACHE=====
|
|
rebuild-cache:
|
|
image: plugins/s3-cache
|
|
|
|
endpoint: https://s3.roosens.me
|
|
root: build-cache/
|
|
rebuild: true
|
|
mount:
|
|
- target
|
|
- .cargo
|
|
|
|
secrets: [ cache_s3_access_key, cache_s3_secret_key ]
|
|
# Push the cache, even on failure
|
|
when:
|
|
status: [ success, failure ]
|
|
|
|
flush-cache:
|
|
image: plugins/s3-cache
|
|
|
|
endpoint: https://s3.roosens.me
|
|
root: build-cache/
|
|
flush: true
|
|
flush_age: 14
|
|
|
|
secrets: [ cache_s3_access_key, cache_s3_secret_key ]
|
|
# Push the cache, even on failure
|
|
when:
|
|
status: [ success, failure ]
|