]> Untitled Git - lemmy.git/blob - .drone.yml
Trying again.
[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       RUST_BACKTRACE: 1
49       RUST_TEST_THREADS: 1
50     commands:
51       - sudo apt-get update
52       - sudo apt-get -y install --no-install-recommends espeak postgresql-client
53       - cargo test --workspace --no-fail-fast
54     # disable this
55     when:
56       ref:
57         - refs/tags/*
58
59   - name: cargo build
60     image: ekidd/rust-musl-builder:1.47.0
61     commands:
62       - cargo build
63       - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
64
65   - name: run federation tests
66     image: node:15.4.0
67     environment:
68       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432
69       DO_WRITE_HOSTS_FILE: 1
70     commands:
71       - ls -la target/lemmy_server
72       # - apk add bash curl postgresql-client
73       - apt-get update && apt-get install -y postgresql postgresql-contrib
74       - bash api_tests/prepare-drone-federation-test.sh
75       - cd api_tests/
76       - yarn
77       - yarn api-test
78
79   - name: create docker tags
80     image: ekidd/rust-musl-builder:1.47.0
81     commands:
82       - echo "$(git describe),latest" > .tags
83     when:
84       ref:
85       - refs/tags/*
86
87   - name: make release build and push to docker hub
88     image: plugins/docker
89     settings:
90       dockerfile: docker/prod/Dockerfile
91       username:
92         from_secret: docker_username
93       password:
94         from_secret: docker_password
95       repo: dessalines/lemmy
96     when:
97       ref:
98       - refs/tags/*
99
100 services:
101   - name: database
102     image: postgres:12-alpine
103     environment:
104       POSTGRES_USER: lemmy
105       POSTGRES_PASSWORD: password
106
107 volumes:
108   - name: dieselcli
109     temp: {}