1name: CI23on: [push]45jobs:6 test:7 name: Test Suite8 runs-on: ubuntu-latest9 steps:10 - name: Checkout sources11 uses: actions/checkout@v212 - name: Install stable toolchain13 uses: actions-rs/toolchain@v114 with:15 toolchain: stable16 override: true17 - name: Run tests18 uses: actions-rs/cargo@v119 with:20 command: test21 args: --all2223 cargo-release:24 if: startsWith(github.ref, 'refs/tags/')25 needs: [test]26 runs-on: ubuntu-latest27 steps:28 - name: Checkout sources29 uses: actions/checkout@v230 - name: Install stable toolchain31 uses: actions-rs/toolchain@v132 with:33 toolchain: stable34 override: true35 - name: Install cargo release command36 uses: actions-rs/cargo@v137 with:38 command: install39 args: cargo-release40 - name: Run cargo login41 uses: actions-rs/cargo@v142 with:43 command: login44 args: ${{ secrets.CARGO_TOKEN }}45 - name: Publish crates46 uses: actions-rs/cargo@v147 with:48 command: release49 args: --no-dev-version --skip-push --skip-tag --no-confirm5051 github-release:52 if: startsWith(github.ref, 'refs/tags/')53 needs: [test]54 strategy:55 matrix:56 target:57 - x86_64-apple-darwin58 - x86_64-pc-windows-msvc59 - x86_64-unknown-linux-gnu60 - x86_64-unknown-linux-musl61 include:62 - target: x86_64-apple-darwin63 os: macOS-latest64 bin: jrsonnet65 name: jrsonnet-darwin-amd6466 - target: x86_64-pc-windows-msvc67 os: windows-latest68 bin: jrsonnet.exe69 name: jrsonnet-windows-msvc-amd64.exe70 - target: x86_64-unknown-linux-gnu71 os: ubuntu-latest72 bin: jrsonnet73 name: jrsonnet-linux-gnu-amd6474 - target: x86_64-unknown-linux-musl75 os: ubuntu-latest76 bin: jrsonnet77 name: jrsonnet-linux-musl-amd6478 runs-on: ${{ matrix.os }}79 steps:80 - name: Install stable toolchain81 uses: actions-rs/toolchain@v182 with:83 toolchain: stable84 override: true85 target: ${{ matrix.target }}8687 - name: Checkout88 uses: actions/checkout@v28990 - name: Run build91 uses: actions-rs/cargo@v192 with:93 command: build94 args: --bin=jrsonnet --release --target ${{ matrix.target }}9596 - name: Package97 shell: bash98 run: |99 strip target/${{ matrix.target }}/release/${{ matrix.bin }}100 cd target/${{ matrix.target }}/release101102 cp ${{ matrix.bin }} ../../../${{ matrix.name }}103 cd -104105 - name: Generate SHA-256106 run: shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256107108 - name: Publish109 uses: softprops/action-gh-release@v1110 with:111 draft: true112 files: "jrsonnet*"113 env:114 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}