-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
124 lines (103 loc) · 3.12 KB
/
Makefile
File metadata and controls
124 lines (103 loc) · 3.12 KB
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
ARCH := $(shell uname -m)
OSVER := $(shell uname -r)
PACKAGE := $(shell grep -m1 name Cargo.toml | cut -f2 -d '=' | tr -d ' "')
LNXIMG := "ekidd/rust-musl-builder"
TRIGGER := $(shell grep tdigest ${HOME}/.git-triggers | cut -f2 -d '=')
PROJECT := "10554030"
VERSION := $(shell cat VERSION)
compile: CMD := "cat Cargo.toml | sed 's/version =.*/version = \"${VERSION}\"/' > Cargo.toml.new"
compile: lint
./scripts/version.sh patch
eval ${CMD}
mv Cargo.toml.new Cargo.toml
cargo build --release
lint:
rustup default stable
rustup component add clippy
rustup component add rustfmt
cargo fmt
cargo clippy
unit-test: compile test-data
cargo test
unit-test-verbose: compile test-data
cargo test -- --nocapture
test-data:
if [ ! -d data ]; then \
mkdir data; \
r < r/large-uniform.r --no-save; \
r < r/small-uniform.r --no-save; \
r < r/large-normal.r --no-save; \
r < r/small-normal.r --no-save; \
r < r/large-skew.r --no-save; \
r < r/small-skew.r --no-save; \
r < r/mass-point-left.r --no-save; \
r < r/mass-point-right.r --no-save; \
fi
if [ ! -d centroids ]; then \
mkdir centroids; \
fi
build: darwin linux
git add -A
git commit -m "Make build ${VERSION}"
git pull origin master
git push origin master
darwin: darwin_clean refresh
cargo build --release
cp -p target/release/${PACKAGE} staging/${PACKAGE}_${VERSION}_darwin_${ARCH}
darwin_clean: stagedir
rm -f staging/${PACKAGE}_${VERSION}_darwin_${ARCH}
linux: linux_clean
if [ -f ${PWD}/CBAInternalRootCA.pem ]; then \
docker run --rm -it --name "rust-compiler" \
-e SSL_CERT_FILE=/etc/ssl/certs/CBAInternalRootCA.pem \
-v "${HOME}"/.cargo:/.cargo \
-v "${HOME}"/.rustup:/.rustup \
-v "${PWD}/CBAInternalRootCA.pem":/etc/ssl/certs/CBAInternalRootCA.pem:ro \
-v "${PWD}":/home/rust/src ${LNXIMG} cargo build --release; \
else \
docker run --rm -it --name "rust-compiler" \
-v "${HOME}"/.cargo:/.cargo \
-v "${HOME}"/.rustup:/.rustup \
-v "${PWD}":/home/rust/src ${LNXIMG} cargo build --release; \
fi
cp -p target/x86_64-unknown-linux-musl/release/${PACKAGE} staging/${PACKAGE}_${VERSION}_linux_${ARCH}
linux_clean: stagedir
rm -f staging/${PACKAGE}_${VERSION}_linux_${ARCH}
patch:
./scripts/version.sh patch
feature:
./scripts/version.sh feature
upgrade:
./scripts/version.sh upgrade
refresh:
rustup default stable
rustup update
cargo update
test: downloaddir stagedir
curl --request POST \
--form token=${TRIGGER} \
--form ref=master \
--form "variables[STAGE]=test" \
release : downloaddir stagedir
curl --request POST \
--form token=${TRIGGER} \
--form ref=master \
--form "variables[STAGE]=release" \
https://gitlab.com/api/v4/projects/${PROJECT}/trigger/pipeline
push : downloaddir stagedir
curl --request POST \
--form token=${TRIGGER} \
--form ref=master \
--form "variables[STAGE]=push" \
https://gitlab.com/api/v4/projects/${PROJECT}/trigger/pipeline
clean:
rm -rf target rc data centroids
downloaddir:
if [ ! -d releases ]; then \
mkdir releases; \
fi
stagedir:
if [ ! -d staging ]; then \
mkdir staging; \
fi
.PHONY: clean linux_clean darwin_clean