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 ]