-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.drone.yml
129 lines (116 loc) · 3.81 KB
/
.drone.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
kind: pipeline
type: docker
name: default
platform:
os: linux
arch: amd64
steps:
- name: restore-cache-with-filesystem
image: meltwater/drone-cache
pull: true
settings:
backend: "filesystem"
restore: true
cache_key: "volume"
mount:
- target
- /usr/local/cargo/env
volumes:
- name: cache
path: /tmp/cache
- name: lint
image: rust:latest
commands:
- rustup component add rustfmt clippy
- cargo fmt --check
- cargo clippy
depends_on:
- restore-cache-with-filesystem
- name: build-x86_64-unknown-linux-gnu
image: rust:latest
commands:
- cargo build --release
- strip target/release/empede
depends_on:
- restore-cache-with-filesystem
- name: build-aarch64-unknown-linux-gnu
image: rust:latest
commands:
- apt-get update
- apt-get install -y gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
- rustup target add aarch64-unknown-linux-gnu
- cargo build --target=aarch64-unknown-linux-gnu --release --config target.aarch64-unknown-linux-gnu.linker=\"aarch64-linux-gnu-gcc\"
- aarch64-linux-gnu-strip target/aarch64-unknown-linux-gnu/release/empede
when:
event: tag
depends_on:
- restore-cache-with-filesystem
- name: build-x86_64-pc-windows-gnu
image: rust:latest
commands:
- apt-get update && apt-get install -y mingw-w64
- rustup target add x86_64-pc-windows-gnu
- cargo build --target=x86_64-pc-windows-gnu --release --config target.x86_64-pc-windows-gnu.linker=\"x86_64-w64-mingw32-gcc\"
- x86_64-w64-mingw32-strip target/x86_64-pc-windows-gnu/release/empede.exe
when:
event: tag
depends_on:
- restore-cache-with-filesystem
- name: package
image: alpine
commands:
- apk add --no-cache tar gzip zip
# x86_64-unknown-linux-gnu
- mkdir empede-x86_64-unknown-linux-gnu-${DRONE_TAG}
- cp -r target/release/empede static/ README.md empede-x86_64-unknown-linux-gnu-${DRONE_TAG}/
- tar czf empede-x86_64-unknown-linux-gnu-${DRONE_TAG}.tar.gz empede-x86_64-unknown-linux-gnu-${DRONE_TAG}/
# aarch64-unknown-linux-gnu
- mkdir empede-aarch64-unknown-linux-gnu-${DRONE_TAG}
- cp -r target/aarch64-unknown-linux-gnu/release/empede static/ README.md empede-aarch64-unknown-linux-gnu-${DRONE_TAG}/
- tar czf empede-aarch64-unknown-linux-gnu-${DRONE_TAG}.tar.gz empede-aarch64-unknown-linux-gnu-${DRONE_TAG}/
# x86_64-pc-windows-gnu
- mkdir empede-x86_64-pc-windows-gnu-${DRONE_TAG}
- cp -r target/x86_64-pc-windows-gnu/release/empede.exe static/ README.md empede-x86_64-pc-windows-gnu-${DRONE_TAG}/
- zip -r empede-x86_64-pc-windows-gnu-${DRONE_TAG}.zip empede-x86_64-pc-windows-gnu-${DRONE_TAG}/
depends_on:
- build-aarch64-unknown-linux-gnu
- build-x86_64-unknown-linux-gnu
- build-x86_64-pc-windows-gnu
when:
event: tag
- name: gitea_release
image: plugins/gitea-release
settings:
api_key:
from_secret: GITEA_TOKEN
base_url: https://git.sijman.nl
files:
- empede-aarch64-unknown-linux-gnu-${DRONE_TAG}.tar.gz
- empede-x86_64-unknown-linux-gnu-${DRONE_TAG}.tar.gz
- empede-x86_64-pc-windows-gnu-${DRONE_TAG}.zip
depends_on:
- package
when:
event: tag
- name: rebuild-cache-with-filesystem
image: meltwater/drone-cache
pull: true
settings:
backend: "filesystem"
rebuild: true
cache_key: "volume"
mount:
- target
- /usr/local/cargo/env
volumes:
- name: cache
path: /tmp/cache
depends_on:
- build-aarch64-unknown-linux-gnu
- build-x86_64-unknown-linux-gnu
- build-x86_64-pc-windows-gnu
- lint
volumes:
- name: cache
host:
path: /var/lib/cache