]> Untitled Git - lemmy.git/blob - .drone.yml
Merge branch 'main' into move_views_to_diesel
[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
17   - name: cargo clippy
18     image: ekidd/rust-musl-builder:1.47.0
19     commands:
20       - cargo clippy --workspace --tests --all-targets --all-features -- -D warnings
21
22   - name: check documentation build
23     image: ekidd/rust-musl-builder:1.47.0
24     commands:
25       - mdbook build docs/
26
27   - name: cargo test
28     image: ekidd/rust-musl-builder:1.47.0
29     environment:
30       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
31       RUST_BACKTRACE: 1
32       RUST_TEST_THREADS: 1
33     commands:
34       - sudo apt-get update
35       - sudo apt-get -y install --no-install-recommends espeak postgresql-client
36       - cargo test --workspace --no-fail-fast
37
38   - name: cargo build
39     image: ekidd/rust-musl-builder:1.47.0
40     commands:
41       - cargo build
42       - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
43
44   - name: run federation tests
45     image: node:15-alpine3.12
46     environment:
47       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432
48       DO_WRITE_HOSTS_FILE: 1
49     commands:
50       - ls -la target/lemmy_server
51       - apk add bash curl postgresql-client
52       - bash api_tests/prepare-drone-federation-test.sh
53       - cd api_tests/
54       - yarn
55       - yarn api-test
56
57   - name: create docker tags
58     image: ekidd/rust-musl-builder:1.47.0
59     commands:
60       - echo "$(git describe),latest" > .tags
61     when:
62       ref:
63       - refs/tags/*
64
65   - name: make release build and push to docker hub
66     image: plugins/docker
67     settings:
68       dockerfile: docker/prod/Dockerfile
69       username:
70         from_secret: docker_username
71       password:
72         from_secret: docker_password
73       repo: dessalines/lemmy
74     when:
75       ref:
76       - refs/tags/*
77
78 services:
79   - name: database
80     image: postgres:12-alpine
81     environment:
82       POSTGRES_USER: lemmy
83       POSTGRES_PASSWORD: password
84
85 volumes:
86   - name: dieselcli
87     temp: {}