git.delta.rocks / jrsonnet / refs/commits / a7e4b59c444f

difftreelog

source

.github/workflows/release.yml4.9 KiBsourcehistory
1name: CI2on: [push]3jobs:4  test:5    name: Test Suite6    runs-on: ubuntu-latest7    steps:8      - name: Checkout sources9        uses: actions/checkout@v210      - name: Install stable toolchain11        uses: actions-rs/toolchain@v112        with:13          toolchain: stable14          override: true15      - name: Run tests16        uses: actions-rs/cargo@v117        with:18          command: test19          args: --all2021  cargo-release:22    if: startsWith(github.ref, 'refs/tags/') && !endsWith(github.ref, '-test')23    needs: [test]24    runs-on: ubuntu-latest25    steps:26      - name: Checkout sources27        uses: actions/checkout@v228      - name: Install stable toolchain29        uses: actions-rs/toolchain@v130        with:31          toolchain: stable32          override: true33      - name: Install cargo release command34        uses: actions-rs/cargo@v135        with:36          command: install37          args: cargo-release38      - name: Run cargo login39        uses: actions-rs/cargo@v140        with:41          command: login42          args: ${{ secrets.CARGO_TOKEN }}43      - name: Publish crates44        uses: actions-rs/cargo@v145        with:46          command: release47          args: --no-dev-version --skip-push --skip-tag --no-confirm4849  github-release:50    if: startsWith(github.ref, 'refs/tags/')51    needs: [test]52    strategy:53      matrix:54        target:55          # Linux build notes:56          # While musl targets are not as supported as gnu, those are most relevant to users,57          # which want to download binaries from github, as glibc has compatibility issues58          # with older distros5960          # Tier 161          - i686-pc-windows-msvc62          - x86_64-apple-darwin63          - x86_64-pc-windows-msvc6465          # Tier 266          - aarch64-apple-darwin67          - aarch64-unknown-linux-musl68          - i686-unknown-linux-musl69          - x86_64-unknown-linux-musl70        include:71          # Linux72          - target: aarch64-unknown-linux-musl73            os: ubuntu-latest74            bin: jrsonnet75            name: jrsonnet-linux-aarch6476          - target: i686-unknown-linux-musl77            os: ubuntu-latest78            bin: jrsonnet79            name: jrsonnet-linux-i68680          - target: x86_64-unknown-linux-musl81            os: ubuntu-latest82            bin: jrsonnet83            name: jrsonnet-linux-amd648485          # Windows86          - target: i686-pc-windows-msvc87            os: windows-latest88            bin: jrsonnet.exe89            name: jrsonnet-windows-i686.exe90          - target: x86_64-pc-windows-msvc91            os: windows-latest92            bin: jrsonnet.exe93            name: jrsonnet-windows-amd64.exe9495          # Apple96          - target: aarch64-apple-darwin97            os: macOS-latest98            bin: jrsonnet99            name: jrsonnet-darwin-aarch64100          - target: x86_64-apple-darwin101            os: macOS-latest102            bin: jrsonnet103            name: jrsonnet-darwin-amd64104    runs-on: ${{ matrix.os }}105    steps:106      - name: Install stable toolchain107        uses: actions-rs/toolchain@v1108        with:109          toolchain: stable110          override: true111          target: ${{ matrix.target }}112113      - name: Checkout114        uses: actions/checkout@v2115116      - name: Add experimental flags117        if: ${{ endsWith(github.ref, '-test' )}}118        run: echo 'EXPERIMENTAL_FLAGS=--features=experimental' >> $GITHUB_ENV119120      - name: Linux x86 cross compiler121        if: ${{ startsWith(matrix.target, 'i686-unknown-linux-') }}122        run: sudo apt install gcc-multilib123124      - name: ARM cross compiler125        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}126        uses: actions-rs/cargo@v1127        with:128          command: install129          args: cross130131      - name: ARM gcc132        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}133        run: sudo apt install gcc-aarch64-linux-gnu134135      - name: Musl gcc136        if: ${{ endsWith(matrix.target, '-musl') }}137        run: sudo apt install musl musl-tools138139      - name: Run cross build140        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}141        shell: bash142        run: cross build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}143144      - name: Run build145        if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}146        uses: actions-rs/cargo@v1147        with:148          command: build149          args: --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}150151      - name: Package152        shell: bash153        run: |154          cd target/${{ matrix.target }}/release155156          cp ${{ matrix.bin }} ../../../${{ matrix.name }}157          cd -158159      - name: Generate SHA-256160        run: shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256161162      - name: Publish163        uses: softprops/action-gh-release@v1164        with:165          draft: true166          files: "jrsonnet*"167        env:168          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}