]> Untitled Git - lemmy.git/blob - .drone.yml
faster release build
[lemmy.git] / .drone.yml
1 kind: pipeline
2 name: default
3
4 steps:
5
6   - name: chown repo
7     image: ekidd/rust-musl-builder:1.47.0
8     user: root
9     commands:
10       - chown 1000:1000 . -R
11
12   - name: check formatting
13     image: rustdocker/rust:nightly
14     commands:
15       - /root/.cargo/bin/cargo fmt -- --check
16     # disable this
17     when:
18       ref:
19         - refs/tags/*
20
21   - name: cargo check
22     image: ekidd/rust-musl-builder:1.47.0
23     commands:
24       - cargo check --workspace --all-targets
25     # disable this
26     when:
27       ref:
28         - refs/tags/*
29
30   - name: cargo clippy
31     image: ekidd/rust-musl-builder:1.47.0
32     commands:
33       - cargo clippy
34     # disable this
35     when:
36       ref:
37         - refs/tags/*
38
39   - name: check documentation build
40     image: ekidd/rust-musl-builder:1.47.0
41     commands:
42       - mdbook build docs/
43
44   - name: cargo test
45     image: ekidd/rust-musl-builder:1.47.0
46     environment:
47       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
48       DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
49       RUST_BACKTRACE: 1
50       RUST_TEST_THREADS: 1
51     commands:
52       - sudo apt-get update
53       - sudo apt-get -y install --no-install-recommends espeak postgresql-client
54       - cargo test --workspace --no-fail-fast
55     # disable this
56     when:
57       ref:
58         - refs/tags/*
59
60   - name: cargo build
61     image: ekidd/rust-musl-builder:1.47.0
62     environment:
63       -  RUSTFLAGS: "-C opt-level=0 -C lto=off"
64     commands:
65       - cargo build --release
66
67   - name: run federation tests
68     image: node:15-alpine3.12
69     commands:
70       - apk add bash curl postgresql-client
71       - bash api_tests/prepare-drone-federation-test.sh
72       - cd api_tests/
73       - yarn
74       - yarn api-test
75
76   - name: create docker tags
77     image: ekidd/rust-musl-builder:1.47.0
78     commands:
79       - echo "$(git describe),latest" > .tags
80     when:
81       ref:
82       - refs/tags/*
83
84   - name: make release build and push to docker hub
85     image: plugins/docker
86     settings:
87       dockerfile: docker/prod/Dockerfile
88       #username: kevinbacon
89       #password: pa55word
90       repo: dessalines/lemmy
91     when:
92       ref:
93       - refs/tags/*
94
95 # TODO: also need to add more databases for federation test
96 #       (or use multiple DBs in the same postgres instance)
97 services:
98   - name: database
99     image: postgres:12-alpine
100     environment:
101       POSTGRES_USER: lemmy
102       POSTGRES_PASSWORD: password
103     detach: true
104
105 volumes:
106   - name: dieselcli
107     temp: {}