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