]> Untitled Git - lemmy.git/blob - .drone.yml
Merge remote-tracking branch 'yerba/move_views_to_diesel' into move_views_to_diesel
[lemmy.git] / .drone.yml
1 kind: pipeline
2 name: default
3
4 steps:
5   - name: fetch git submodules
6     image: node:15-alpine3.12
7     commands:
8       - apk add git
9       - git submodule update --init --recursive --remote
10       - find docs/
11
12   - name: chown repo
13     image: ekidd/rust-musl-builder:1.47.0
14     user: root
15     commands:
16       - chown 1000:1000 . -R
17
18   - name: check documentation build
19     image: ekidd/rust-musl-builder:1.47.0
20     commands:
21       - cargo install mdbook --git https://github.com/Ruin0x11/mdBook.git --branch localization --rev d06249b
22       - mdbook build docs/
23
24   - name: check formatting
25     image: rustdocker/rust:nightly
26     commands:
27       - /root/.cargo/bin/cargo fmt -- --check
28
29   - name: cargo clippy
30     image: ekidd/rust-musl-builder:1.47.0
31     commands:
32       - cargo clippy --workspace --tests --all-targets --all-features -- -D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro
33
34   - name: cargo test
35     image: ekidd/rust-musl-builder:1.47.0
36     environment:
37       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy
38       RUST_BACKTRACE: 1
39       RUST_TEST_THREADS: 1
40     commands:
41       - sudo apt-get update
42       - sudo apt-get -y install --no-install-recommends espeak postgresql-client
43       - cargo test --workspace --no-fail-fast
44
45   - name: cargo build
46     image: ekidd/rust-musl-builder:1.47.0
47     commands:
48       - cargo build
49       - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
50
51   - name: run federation tests
52     image: node:15-alpine3.12
53     environment:
54       LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432
55       DO_WRITE_HOSTS_FILE: 1
56     commands:
57       - ls -la target/lemmy_server
58       - apk add bash curl postgresql-client
59       - bash api_tests/prepare-drone-federation-test.sh
60       - cd api_tests/
61       - yarn
62       - yarn api-test
63
64   - name: create docker tags
65     image: ekidd/rust-musl-builder:1.47.0
66     commands:
67       - echo "$(git describe),latest" > .tags
68     when:
69       ref:
70       - refs/tags/*
71
72   - name: make release build and push to docker hub
73     image: plugins/docker
74     settings:
75       dockerfile: docker/prod/Dockerfile
76       username:
77         from_secret: docker_username
78       password:
79         from_secret: docker_password
80       repo: dessalines/lemmy
81     when:
82       ref:
83       - refs/tags/*
84
85 services:
86   - name: database
87     image: postgres:12-alpine
88     environment:
89       POSTGRES_USER: lemmy
90       POSTGRES_PASSWORD: password
91
92 volumes:
93   - name: dieselcli
94     temp: {}