@@ -0,0 +1,85 @@
4+ - cron: '0 0 * * *' # midnight UTC
13+ runs-on: ${{ matrix.os }}
16+ build: [linux, linux-arm, macos, win-msvc, win-gnu, win32-msvc]
21+ target: x86_64-unknown-linux-musl
25+ target: arm-unknown-linux-gnueabihf
29+ target: x86_64-apple-darwin
33+ target: x86_64-pc-windows-msvc
36+ # rust: nightly-x86_64-gnu
37+ # target: x86_64-pc-windows-gnu
38+ # - build: win32-msvc
41+ # target: i686-pc-windows-msvc
44+ - name: Checkout sources
45+ uses: actions/checkout@v2
49+ - name: Install ${{ matrix.rust }} toolchain
50+ uses: actions-rs/toolchain@v1
53+ toolchain: ${{ matrix.rust }}
54+ target: ${{ matrix.target }}
57+ - name: Build release binary
58+ uses: actions-rs/cargo@v1
62+ args: --release --locked --target ${{ matrix.target }}
64+ - name: Run cargo test
65+ uses: actions-rs/cargo@v1
69+ args: --release --locked
71+ - name: Strip release binary (linux and macos)
72+ if: matrix.build == 'linux' || matrix.build == 'macos'
73+ run: strip "target/${{ matrix.target }}/release/rg"
75+ - name: Strip release binary (arm)
76+ if: matrix.build == 'linux-arm'
79+ "$PWD/target:/target:Z" \
80+ rustembedded/cross:arm-unknown-linux-gnueabihf \
81+ arm-linux-gnueabihf-strip \
82+ /target/arm-unknown-linux-gnueabihf/release/rg
85+ # upload to nightly release