@@ -24,7 +24,7 @@ script:
24
24
25
25
- make clean test QUIET=1 CFLAGS+="-DLFS_NO_INTRINSICS"
26
26
27
- # compile and find the code size with the smalles configuration
27
+ # compile and find the code size with the smallest configuration
28
28
- make clean size
29
29
OBJ="$(ls lfs*.o | tr '\n' ' ')"
30
30
CFLAGS+="-DLFS_NO{ASSERT,DEBUG,WARN,ERROR}"
@@ -35,27 +35,32 @@ script:
35
35
if [ "$TRAVIS_TEST_RESULT" -eq 0 ]
36
36
then
37
37
CURR=$(tail -n1 sizes | awk '{print $1}')
38
- STATUS="Passed, code size is ${CURR}B"
39
-
40
38
PREV=$(curl https://github.com/api/repos/$TRAVIS_REPO_SLUG/status/master \
41
- | jq -r ".statuses[] | select(.context == \"ci/$NAME\").description" \
42
- | sed 's/.*code size is \([0-9]*\).*/\1/' \
39
+ | jq -re "select(.sha != \"$TRAVIS_COMMIT\")
40
+ | .statuses[] | select(.context == \"$STAGE/$NAME\").description
41
+ | capture(\"code size is (?<size>[0-9]+)\").size" \
43
42
|| echo 0)
43
+
44
+ STATUS="Passed, code size is ${CURR}B"
44
45
if [ "$PREV" -ne 0 ]
45
46
then
46
47
STATUS="$STATUS ($(python -c "print '%+.2f' % (100*($CURR-$PREV)/$PREV.0)")%)"
47
48
fi
48
49
fi
49
50
50
51
# CI matrix
51
- matrix :
52
+ jobs :
52
53
include :
53
54
# native testing
54
- - env :
55
+ - stage : test
56
+ env :
57
+ - STAGE=test
55
58
- NAME=littlefs-x86
56
59
57
60
# cross-compile with ARM (thumb mode)
58
- - env :
61
+ - stage : test
62
+ env :
63
+ - STAGE=test
59
64
- NAME=littlefs-arm
60
65
- CC="arm-linux-gnueabi-gcc --static -mthumb"
61
66
- EXEC="qemu-arm"
@@ -65,7 +70,9 @@ matrix:
65
70
- qemu-arm -version
66
71
67
72
# cross-compile with PowerPC
68
- - env :
73
+ - stage : test
74
+ env :
75
+ - STAGE=test
69
76
- NAME=littlefs-powerpc
70
77
- CC="powerpc-linux-gnu-gcc --static"
71
78
- EXEC="qemu-ppc"
@@ -75,7 +82,9 @@ matrix:
75
82
- qemu-ppc -version
76
83
77
84
# cross-compile with MIPS
78
- - env :
85
+ - stage : test
86
+ env :
87
+ - STAGE=test
79
88
- NAME=littlefs-mips
80
89
- CC="mips-linux-gnu-gcc --static"
81
90
- EXEC="qemu-mips"
@@ -87,7 +96,9 @@ matrix:
87
96
- qemu-mips -version
88
97
89
98
# self-host with littlefs-fuse for fuzz test
90
- - env :
99
+ - stage : test
100
+ env :
101
+ - STAGE=test
91
102
- NAME=littlefs-fuse
92
103
install :
93
104
- sudo apt-get install libfuse-dev
@@ -117,13 +128,67 @@ matrix:
117
128
- ls
118
129
- make -B test_dirs test_files QUIET=1
119
130
131
+ # Automatically update releases
132
+ - stage : deploy
133
+ env :
134
+ - STAGE=deploy
135
+ - NAME=deploy
136
+ script :
137
+ # Update tag for version defined in lfs.h
138
+ - LFS_VERSION=$(grep -ox '#define LFS_VERSION .*' lfs.h | cut -d ' ' -f3)
139
+ - LFS_VERSION_MAJOR=$((0xffff & ($LFS_VERSION >> 16)))
140
+ - LFS_VERSION_MINOR=$((0xffff & ($LFS_VERSION >> 0)))
141
+ - LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR"
142
+ - echo "littlefs version $LFS_VERSION"
143
+ - |
144
+ curl -u $GEKY_BOT_RELEASES -X POST \
145
+ https://github.com/api/repos/$TRAVIS_REPO_SLUG/git/refs \
146
+ -d "{
147
+ \"ref\": \"refs/tags/$LFS_VERSION\",
148
+ \"sha\": \"$TRAVIS_COMMIT\"
149
+ }"
150
+ - |
151
+ curl -f -u $GEKY_BOT_RELEASES -X PATCH \
152
+ https://github.com/api/repos/$TRAVIS_REPO_SLUG/git/refs/tags/$LFS_VERSION \
153
+ -d "{
154
+ \"sha\": \"$TRAVIS_COMMIT\"
155
+ }"
156
+ # Create release notes from commits
157
+ - LFS_PREV_VERSION="v$LFS_VERSION_MAJOR.$(($LFS_VERSION_MINOR-1))"
158
+ - |
159
+ if [ $(git tag -l "$LFS_PREV_VERSION") ]
160
+ then
161
+ curl -u $GEKY_BOT_RELEASES -X POST \
162
+ https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases \
163
+ -d "{
164
+ \"tag_name\": \"$LFS_VERSION\",
165
+ \"name\": \"$LFS_VERSION\"
166
+ }"
167
+ RELEASE=$(
168
+ curl -f https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases/tags/$LFS_VERSION
169
+ )
170
+ CHANGES=$(
171
+ git log --oneline $LFS_PREV_VERSION.. --grep='^Merge' --invert-grep
172
+ )
173
+ curl -f -u $GEKY_BOT_RELEASES -X PATCH \
174
+ https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases/$(
175
+ jq -r '.id' <<< "$RELEASE"
176
+ ) \
177
+ -d "$(
178
+ jq -s '{
179
+ "body": ((.[0] // "" | sub("(?<=\n)#+ Changes.*"; ""; "mi"))
180
+ + "### Changes\n\n" + .[1])
181
+ }' <(jq '.body' <<< "$RELEASE") <(jq -sR '.' <<< "$CHANGES")
182
+ )"
183
+ fi
184
+
120
185
# Manage statuses
121
186
before_install :
122
187
- |
123
188
curl -u $GEKY_BOT_STATUSES -X POST \
124
189
https://github.com/api/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \
125
190
-d "{
126
- \"context\": \"ci /$NAME\",
191
+ \"context\": \"$STAGE /$NAME\",
127
192
\"state\": \"pending\",
128
193
\"description\": \"${STATUS:-In progress}\",
129
194
\"target_url\": \"https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$TRAVIS_JOB_ID\"
@@ -134,7 +199,7 @@ after_failure:
134
199
curl -u $GEKY_BOT_STATUSES -X POST \
135
200
https://github.com/api/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \
136
201
-d "{
137
- \"context\": \"ci /$NAME\",
202
+ \"context\": \"$STAGE /$NAME\",
138
203
\"state\": \"failure\",
139
204
\"description\": \"${STATUS:-Failed}\",
140
205
\"target_url\": \"https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$TRAVIS_JOB_ID\"
@@ -145,66 +210,14 @@ after_success:
145
210
curl -u $GEKY_BOT_STATUSES -X POST \
146
211
https://github.com/api/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} \
147
212
-d "{
148
- \"context\": \"ci /$NAME\",
213
+ \"context\": \"$STAGE /$NAME\",
149
214
\"state\": \"success\",
150
215
\"description\": \"${STATUS:-Passed}\",
151
216
\"target_url\": \"https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$TRAVIS_JOB_ID\"
152
217
}"
153
218
154
- # Automatically update releases
155
- deploy :
156
- # Let before_deploy take over
157
- provider : script
158
- script : ' true'
159
- on :
160
- branch : master
161
-
162
- before_deploy :
163
- - cd $TRAVIS_BUILD_DIR
164
- # Update tag for version defined in lfs.h
165
- - LFS_VERSION=$(grep -ox '#define LFS_VERSION .*' lfs.h | cut -d ' ' -f3)
166
- - LFS_VERSION_MAJOR=$((0xffff & ($LFS_VERSION >> 16)))
167
- - LFS_VERSION_MINOR=$((0xffff & ($LFS_VERSION >> 0)))
168
- - LFS_VERSION="v$LFS_VERSION_MAJOR.$LFS_VERSION_MINOR"
169
- - echo "littlefs version $LFS_VERSION"
170
- - |
171
- curl -u $GEKY_BOT_RELEASES -X POST \
172
- https://github.com/api/repos/$TRAVIS_REPO_SLUG/git/refs \
173
- -d "{
174
- \"ref\": \"refs/tags/$LFS_VERSION\",
175
- \"sha\": \"$TRAVIS_COMMIT\"
176
- }"
177
- - |
178
- curl -f -u $GEKY_BOT_RELEASES -X PATCH \
179
- https://github.com/api/repos/$TRAVIS_REPO_SLUG/git/refs/tags/$LFS_VERSION \
180
- -d "{
181
- \"sha\": \"$TRAVIS_COMMIT\"
182
- }"
183
- # Create release notes from commits
184
- - LFS_PREV_VERSION="v$LFS_VERSION_MAJOR.$(($LFS_VERSION_MINOR-1))"
185
- - |
186
- if [ $(git tag -l "$LFS_PREV_VERSION") ]
187
- then
188
- curl -u $GEKY_BOT_RELEASES -X POST \
189
- https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases \
190
- -d "{
191
- \"tag_name\": \"$LFS_VERSION\",
192
- \"name\": \"$LFS_VERSION\"
193
- }"
194
- RELEASE=$(
195
- curl -f https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases/tags/$LFS_VERSION
196
- )
197
- CHANGES=$(
198
- git log --oneline $LFS_PREV_VERSION.. --grep='^Merge' --invert-grep
199
- )
200
- curl -f -u $GEKY_BOT_RELEASES -X PATCH \
201
- https://github.com/api/repos/$TRAVIS_REPO_SLUG/releases/$(
202
- jq -r '.id' <<< "$RELEASE"
203
- ) \
204
- -d "$(
205
- jq -s '{
206
- "body": ((.[0] // "" | sub("(?<=\n)#+ Changes.*"; ""; "mi"))
207
- + "### Changes\n\n" + .[1])
208
- }' <(jq '.body' <<< "$RELEASE") <(jq -sR '.' <<< "$CHANGES")
209
- )"
210
- fi
219
+ # Job control
220
+ stages :
221
+ - name : test
222
+ - name : deploy
223
+ if : branch = master
0 commit comments