5 PROJECT_DESC: "A `cat` clone with wings"
6 PROJECT_MAINTAINER: "David Peter <mail@david-peter.de>"
7 PROJECT_HOMEPAGE: "https://github.com/sharkdp/bat"
8 MIN_SUPPORTED_RUST_VERSION: "1.40.0"
10on: [push, pull_request]
14 name: Minimum supported rust version
15 runs-on: ubuntu-latest
18 uses: actions/checkout@v2
19 - name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }})
20 uses: actions-rs/toolchain@v1
22 toolchain: ${{ env.MIN_SUPPORTED_RUST_VERSION }}
24 profile: minimal # minimal component installation (ie, no documentation)
26 uses: actions-rs/cargo@v1
30 test_with_new_syntaxes_and_themes:
31 name: Test with new syntaxes and themes
32 runs-on: ubuntu-latest
35 uses: actions/checkout@v2
37 submodules: true # we need all syntax and theme submodules
38 - name: Install Rust toolchain
39 uses: actions-rs/toolchain@v1
44 - name: Build and install bat
45 uses: actions-rs/cargo@v1
48 args: --locked --path .
49 - name: Rebuild binary assets (syntaxes and themes)
50 run: bash assets/create.sh
51 - name: Build and install bat with updated assets
52 uses: actions-rs/cargo@v1
55 args: --locked --path .
56 - name: Run unit tests with new syntaxes and themes
57 uses: actions-rs/cargo@v1
61 - name: Syntax highlighting regression test
62 run: tests/syntax-tests/regression_test.sh
63 - name: List of languages
64 run: bat --list-languages
65 - name: List of themes
66 run: bat --list-themes
70 runs-on: ${{ matrix.job.os }}
75 # { os, target, cargo-options, features, use-cross, toolchain }
76 - { os: ubuntu-latest , target: arm-unknown-linux-gnueabihf , use-cross: use-cross }
77 - { os: ubuntu-18.04 , target: aarch64-unknown-linux-gnu , use-cross: use-cross }
78 - { os: ubuntu-18.04 , target: i686-unknown-linux-gnu , use-cross: use-cross }
79 - { os: ubuntu-18.04 , target: i686-unknown-linux-musl , use-cross: use-cross }
80 - { os: ubuntu-18.04 , target: x86_64-unknown-linux-gnu , use-cross: use-cross }
81 - { os: ubuntu-18.04 , target: x86_64-unknown-linux-musl , use-cross: use-cross }
82 - { os: ubuntu-16.04 , target: x86_64-unknown-linux-gnu , use-cross: use-cross }
83 - { os: macos-latest , target: x86_64-apple-darwin }
84 # - { os: windows-latest , target: i686-pc-windows-gnu } ## disabled; linker errors (missing '_imp____acrt_iob_func')
85 - { os: windows-latest , target: i686-pc-windows-msvc }
86 # - { os: windows-latest , target: x86_64-pc-windows-gnu } ## disabled; linker errors (missing '_imp____acrt_iob_func')
87 - { os: windows-latest , target: x86_64-pc-windows-msvc }
90 uses: actions/checkout@v2
91 - name: Install prerequisites
94 case ${{ matrix.job.target }} in
95 arm-unknown-linux-gnueabihf) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
96 aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
98 - name: Initialize workflow variables
103 TOOLCHAIN="stable" ## default to "stable" toolchain
104 # * specify alternate TOOLCHAIN for *-pc-windows-gnu targets; gnu targets on Windows are broken for the standard *-pc-windows-msvc toolchain (refs: <https://github.com/rust-lang/rust/issues/47048>, <https://github.com/rust-lang/rust/issues/53454>, <https://github.com/rust-lang/cargo/issues/6754>)
105 case ${{ matrix.job.target }} in *-pc-windows-gnu) TOOLCHAIN="stable-${{ matrix.job.target }}" ;; esac;
106 # * use requested TOOLCHAIN if specified
107 if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
108 echo set-output name=TOOLCHAIN::${TOOLCHAIN}
109 echo ::set-output name=TOOLCHAIN::${TOOLCHAIN}
112 echo set-output name=STAGING::${STAGING}
113 echo ::set-output name=STAGING::${STAGING}
114 # determine EXE suffix
115 EXE_suffix="" ; case ${{ matrix.job.target }} in *-pc-windows-*) EXE_suffix=".exe" ;; esac;
116 echo set-output name=EXE_suffix::${EXE_suffix}
117 echo ::set-output name=EXE_suffix::${EXE_suffix}
118 # parse commit reference info
119 REF_NAME=${GITHUB_REF#refs/*/}
120 unset REF_BRANCH ; case ${GITHUB_REF} in refs/heads/*) REF_BRANCH=${GITHUB_REF#refs/heads/} ;; esac;
121 unset REF_TAG ; case ${GITHUB_REF} in refs/tags/*) REF_TAG=${GITHUB_REF#refs/tags/} ;; esac;
122 REF_SHAS=${GITHUB_SHA:0:8}
123 echo set-output name=REF_NAME::${REF_NAME}
124 echo set-output name=REF_BRANCH::${REF_BRANCH}
125 echo set-output name=REF_TAG::${REF_TAG}
126 echo set-output name=REF_SHAS::${REF_SHAS}
127 echo ::set-output name=REF_NAME::${REF_NAME}
128 echo ::set-output name=REF_BRANCH::${REF_BRANCH}
129 echo ::set-output name=REF_TAG::${REF_TAG}
130 echo ::set-output name=REF_SHAS::${REF_SHAS}
132 unset TARGET_ARCH ; case ${{ matrix.job.target }} in arm-unknown-linux-gnueabihf) TARGET_ARCH=arm ;; i686-*) TARGET_ARCH=i686 ;; x86_64-*) TARGET_ARCH=x86_64 ;; esac;
133 echo set-output name=TARGET_ARCH::${TARGET_ARCH}
134 echo ::set-output name=TARGET_ARCH::${TARGET_ARCH}
135 unset TARGET_OS ; case ${{ matrix.job.target }} in *-linux-*) TARGET_OS=linux ;; *-apple-*) TARGET_OS=macos ;; *-windows-*) TARGET_OS=windows ;; esac;
136 echo set-output name=TARGET_OS::${TARGET_OS}
137 echo ::set-output name=TARGET_OS::${TARGET_OS}
139 PKG_suffix=".tar.gz" ; case ${{ matrix.job.target }} in *-pc-windows-*) PKG_suffix=".zip" ;; esac;
140 PKG_BASENAME=${PROJECT_NAME}-${REF_TAG:-$REF_SHAS}-${{ matrix.job.target }}
141 PKG_NAME=${PKG_BASENAME}${PKG_suffix}
142 echo set-output name=PKG_suffix::${PKG_suffix}
143 echo set-output name=PKG_BASENAME::${PKG_BASENAME}
144 echo set-output name=PKG_NAME::${PKG_NAME}
145 echo ::set-output name=PKG_suffix::${PKG_suffix}
146 echo ::set-output name=PKG_BASENAME::${PKG_BASENAME}
147 echo ::set-output name=PKG_NAME::${PKG_NAME}
148 # deployable tag? (ie, leading "vM" or "M"; M == version number)
149 unset DEPLOY ; if [[ $REF_TAG =~ ^[vV]?[0-9].* ]]; then DEPLOY='true' ; fi
150 echo set-output name=DEPLOY::${DEPLOY:-<empty>/false}
151 echo ::set-output name=DEPLOY::${DEPLOY}
154 case ${{ matrix.job.target }} in
155 aarch64-*-linux-*) DPKG_ARCH=arm64 ;;
156 arm-*-linux-*hf) DPKG_ARCH=armhf ;;
157 i686-*-linux-*) DPKG_ARCH=i686 ;;
158 x86_64-*-linux-*) DPKG_ARCH=amd64 ;;
160 echo set-output name=DPKG_ARCH::${DPKG_ARCH}
161 echo ::set-output name=DPKG_ARCH::${DPKG_ARCH}
163 unset DPKG_VERSION ; if [[ $REF_TAG =~ ^[vV]?[0-9].* ]]; then DPKG_VERSION=${REF_TAG/#[vV]/} ; fi
164 echo set-output name=DPKG_VERSION::${DPKG_VERSION}
165 echo ::set-output name=DPKG_VERSION::${DPKG_VERSION}
166 # DPKG base name/conflicts?
167 DPKG_BASENAME=${PROJECT_NAME}
168 DPKG_CONFLICTS=${PROJECT_NAME}-musl
169 case ${{ matrix.job.target }} in *-musl) DPKG_BASENAME=${PROJECT_NAME}-musl ; DPKG_CONFLICTS=${PROJECT_NAME} ;; esac;
170 echo set-output name=DPKG_BASENAME::${DPKG_BASENAME}
171 echo set-output name=DPKG_CONFLICTS::${DPKG_CONFLICTS}
172 echo ::set-output name=DPKG_BASENAME::${DPKG_BASENAME}
173 echo ::set-output name=DPKG_CONFLICTS::${DPKG_CONFLICTS}
176 if [[ -n $DPKG_ARCH && -n $DPKG_VERSION ]]; then DPKG_NAME="${DPKG_BASENAME}_${DPKG_VERSION}_${DPKG_ARCH}.deb" ; fi
177 echo set-output name=DPKG_NAME::${DPKG_NAME}
178 echo ::set-output name=DPKG_NAME::${DPKG_NAME}
179 # target-specific options
180 # * CARGO_USE_CROSS (truthy)
181 CARGO_USE_CROSS='true' ; case '${{ matrix.job.use-cross }}' in ''|0|f|false|n|no) unset CARGO_USE_CROSS ;; esac;
182 echo set-output name=CARGO_USE_CROSS::${CARGO_USE_CROSS:-<empty>/false}
183 echo ::set-output name=CARGO_USE_CROSS::${CARGO_USE_CROSS}
184 # # * `arm` cannot be tested on ubuntu-* hosts (b/c testing is currently primarily done via comparison of target outputs with built-in outputs and the `arm` target is not executable on the host)
185 JOB_DO_TESTING="true"
186 case ${{ matrix.job.target }} in arm-*) unset JOB_DO_TESTING ;; esac;
187 echo set-output name=JOB_DO_TESTING::${JOB_DO_TESTING:-<empty>/false}
188 echo ::set-output name=JOB_DO_TESTING::${JOB_DO_TESTING}
189 # # * test only library unit tests and binary for arm-type targets
190 unset CARGO_TEST_OPTIONS
191 unset CARGO_TEST_OPTIONS ; case ${{ matrix.job.target }} in arm-* | aarch64-*) CARGO_TEST_OPTIONS="--lib --bin ${PROJECT_NAME}" ;; esac;
192 echo set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
193 echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
194 # * executable for `strip`?
195 STRIP="strip" ; case ${{ matrix.job.target }} in arm-unknown-linux-gnueabihf) STRIP="arm-linux-gnueabihf-strip" ;; aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;; *-pc-windows-msvc) STRIP="" ;; esac;
196 echo set-output name=STRIP::${STRIP}
197 echo ::set-output name=STRIP::${STRIP}
198 - name: Create all needed build/work directories
201 mkdir -p '${{ steps.vars.outputs.STAGING }}'
202 mkdir -p '${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_BASENAME }}'
203 mkdir -p '${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_BASENAME }}/autocomplete'
204 mkdir -p '${{ steps.vars.outputs.STAGING }}/dpkg'
205 - name: Install Rust toolchain
206 uses: actions-rs/toolchain@v1
208 toolchain: ${{ steps.vars.outputs.TOOLCHAIN }}
209 target: ${{ matrix.job.target }}
211 profile: minimal # minimal component installation (ie, no documentation)
215 gcc --version || true
217 rustup toolchain list
222 uses: actions-rs/cargo@v1
224 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
226 args: --release --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }}
228 uses: actions-rs/cargo@v1
230 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
232 args: --target=${{ matrix.job.target }} ${{ steps.vars.outputs.CARGO_TEST_OPTIONS}} ${{ matrix.job.cargo-options }}
234 uses: actions-rs/cargo@v1
236 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
238 args: --target=${{ matrix.job.target }} ${{ matrix.job.cargo-options }} -- --paging=never --color=always --theme=ansi-dark Cargo.toml src/config.rs
239 - name: Check features regex-onig
240 uses: actions-rs/cargo@v1
242 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
244 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig
245 - name: Check features regex-onig,git
246 uses: actions-rs/cargo@v1
248 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
250 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git
251 - name: Check features regex-onig,paging
252 uses: actions-rs/cargo@v1
254 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
256 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,paging
257 - name: Check features regex-onig,git,paging
258 uses: actions-rs/cargo@v1
260 use-cross: ${{ steps.vars.outputs.CARGO_USE_CROSS }}
262 args: --target=${{ matrix.job.target }} --verbose --lib --no-default-features --features regex-onig,git,paging
263 - name: Upload build artifacts
264 uses: actions/upload-artifact@master
266 name: ${{ env.PROJECT_NAME }}-${{ matrix.job.target }}
267 path: target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}
271 ARCHIVE_DIR='${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_BASENAME }}/'
272 COPYRIGHT_YEARS="2018 - "$(date "+%Y")
274 cp 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "$ARCHIVE_DIR"
276 # `strip` binary (if needed)
277 if [ -n "${{ steps.vars.outputs.STRIP }}" ]; then "${{ steps.vars.outputs.STRIP }}" "$ARCHIVE_DIR/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}" ; fi
280 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "$ARCHIVE_DIR"
282 # README, LICENSE and CHANGELOG files
283 cp "README.md" "LICENSE-MIT" "LICENSE-APACHE" "CHANGELOG.md" "$ARCHIVE_DIR"
285 # Autocompletion files
286 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.fish"
287 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
289 # base compressed package
290 pushd '${{ steps.vars.outputs.STAGING }}/' >/dev/null
291 case ${{ matrix.job.target }} in
292 *-pc-windows-*) 7z -y a '${{ steps.vars.outputs.PKG_NAME }}' '${{ steps.vars.outputs.PKG_BASENAME }}'/* | tail -2 ;;
293 *) tar czf '${{ steps.vars.outputs.PKG_NAME }}' '${{ steps.vars.outputs.PKG_BASENAME }}'/* ;;
298 if [ -n "${{ steps.vars.outputs.DPKG_NAME }}" ]; then
299 DPKG_DIR="${{ steps.vars.outputs.STAGING }}/dpkg"
302 install -Dm755 'target/${{ matrix.job.target }}/release/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}' "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}"
303 if [ -n "${{ steps.vars.outputs.STRIP }}" ]; then "${{ steps.vars.outputs.STRIP }}" "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}${{ steps.vars.outputs.EXE_suffix }}" ; fi
305 # Work out shared library dependencies
306 # dpkg-shlibdeps requires debian/control file. Dummy it and clean up
308 touch "./debian/control"
309 case ${{ matrix.job.target }} in
310 aarch64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -l/usr/aarch64-linux-gnu/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
311 arm-*-linux-*hf) DEPENDS="$(dpkg-shlibdeps -l/usr/arm-linux-gnueabihf/lib -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
312 i686-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
313 x86_64-*-linux-*) DEPENDS="$(dpkg-shlibdeps -O "${DPKG_DIR}/usr/bin/${{ env.PROJECT_NAME }}" 2> /dev/null | sed 's/^shlibs:Depends=//')" ;;
318 install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/manual/bat.1 "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
319 gzip -n --best "${DPKG_DIR}/usr/share/man/man1/${{ env.PROJECT_NAME }}.1"
321 # Autocompletion files
322 install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.fish "${DPKG_DIR}/usr/share/fish/vendor_completions.d/${{ env.PROJECT_NAME }}.fish"
323 install -Dm644 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "${DPKG_DIR}/usr/share/zsh/vendor-completions/_${{ env.PROJECT_NAME }}"
326 install -Dm644 "README.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/README.md"
327 install -Dm644 "LICENSE-MIT" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-MIT"
328 install -Dm644 "LICENSE-APACHE" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/LICENSE-APACHE"
329 install -Dm644 "CHANGELOG.md" "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
330 gzip -n --best "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/changelog"
332 cat > "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright" <<EOF
333 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
334 Upstream-Name: ${{ env.PROJECT_NAME }}
335 Source: ${{ env.PROJECT_HOMEPAGE }}
338 Copyright: ${{ env.PROJECT_MAINTAINER }}
339 Copyright: $COPYRIGHT_YEARS ${{ env.PROJECT_MAINTAINER }}
340 License: Apache-2.0 or MIT
343 On Debian systems, the complete text of the Apache-2.0 can be found in the
344 file /usr/share/common-licenses/Apache-2.0.
347 Permission is hereby granted, free of charge, to any
348 person obtaining a copy of this software and associated
349 documentation files (the "Software"), to deal in the
350 Software without restriction, including without
351 limitation the rights to use, copy, modify, merge,
352 publish, distribute, sublicense, and/or sell copies of
353 the Software, and to permit persons to whom the Software
354 is furnished to do so, subject to the following
357 The above copyright notice and this permission notice
358 shall be included in all copies or substantial portions
361 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
362 ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
363 TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
364 PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
365 SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
366 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
367 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
368 IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
369 DEALINGS IN THE SOFTWARE.
371 chmod 644 "${DPKG_DIR}/usr/share/doc/${{ steps.vars.outputs.DPKG_BASENAME }}/copyright"
374 mkdir -p "${DPKG_DIR}/DEBIAN"
375 cat > "${DPKG_DIR}/DEBIAN/control" <<EOF
376 Package: ${{ steps.vars.outputs.DPKG_BASENAME }}
377 Version: ${{ steps.vars.outputs.DPKG_VERSION }}
380 Maintainer: ${{ env.PROJECT_MAINTAINER }}
381 Homepage: ${{ env.PROJECT_HOMEPAGE }}
382 Architecture: ${{ steps.vars.outputs.DPKG_ARCH }}
384 Provides: ${{ env.PROJECT_NAME }}
385 Conflicts: ${{ steps.vars.outputs.DPKG_CONFLICTS }}
386 Description: cat(1) clone with wings.
387 A cat(1) clone with syntax highlighting and Git integration.
391 fakeroot dpkg-deb --build "${DPKG_DIR}" "${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.DPKG_NAME }}"
393 - name: Publish archives and packages
394 uses: softprops/action-gh-release@v1
395 if: steps.vars.outputs.DEPLOY
398 ${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.PKG_NAME }}
399 ${{ steps.vars.outputs.STAGING }}/${{ steps.vars.outputs.DPKG_NAME }}
401 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
405 runs-on: ${{ matrix.job.os }}
409 # job: [ { os: ubuntu-latest }, { os: macos-latest }, { os: windows-latest } ]
411 - { os: ubuntu-latest , toolchain: nightly-2020-04-29 }
412 - { os: macos-latest , toolchain: nightly-2020-04-29 }
413 - { os: windows-latest , toolchain: nightly-2020-04-29-x86_64-pc-windows-gnu }
415 - uses: actions/checkout@v2
416 - name: Initialize workflow variables
421 TOOLCHAIN="nightly" ## default to "nightly" toolchain
422 # * use requested TOOLCHAIN if specified
423 if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
424 # * use requested TOOLCHAIN if specified
425 if [ -n "${{ matrix.job.toolchain }}" ]; then TOOLCHAIN="${{ matrix.job.toolchain }}" ; fi
426 echo set-output name=TOOLCHAIN::${TOOLCHAIN}
427 echo ::set-output name=TOOLCHAIN::${TOOLCHAIN}
428 # target-specific options
430 CODECOV_FLAGS=$( echo "${{ matrix.job.os }}" | sed 's/[^[:alnum:]]/_/g' )
431 echo set-output name=CODECOV_FLAGS::${CODECOV_FLAGS}
432 echo ::set-output name=CODECOV_FLAGS::${CODECOV_FLAGS}
433 - name: rust toolchain ~ install
434 uses: actions-rs/toolchain@v1
436 toolchain: ${{ steps.vars.outputs.TOOLCHAIN }}
438 profile: minimal # minimal component installation (ie, no documentation)
440 uses: actions-rs/cargo@v1
445 CARGO_INCREMENTAL: '0'
446 RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads'
447 - name: Generate coverage data
449 uses: actions-rs/grcov@v0.1
450 - name: Upload coverage results (to Codecov.io)
451 uses: codecov/codecov-action@v1
453 file: ${{ steps.coverage.outputs.report }}
454 flags: ${{ steps.vars.outputs.CODECOV_FLAGS }}
455 name: codecov-umbrella
456 fail_ci_if_error: false
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list