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

difftreelog

source

.github/workflows/release.yml4.9 KiBsourcehistory
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/') && !endsWith(github.ref, '-test')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          # Linux build notes:58          # While musl targets are not as supported as gnu, those are most relevant to users,59          # which want to download binaries from github, as glibc has compatibility issues60          # with older distros6162          # Tier 163          - i686-pc-windows-msvc64          - x86_64-apple-darwin65          - x86_64-pc-windows-msvc6667          # Tier 268          - aarch64-apple-darwin69          - aarch64-unknown-linux-musl70          - i686-unknown-linux-musl71          - x86_64-unknown-linux-musl72        include:73          # Linux74          - target: aarch64-unknown-linux-musl75            os: ubuntu-latest76            bin: jrsonnet77            name: jrsonnet-linux-aarch6478          - target: i686-unknown-linux-musl79            os: ubuntu-latest80            bin: jrsonnet81            name: jrsonnet-linux-i68682          - target: x86_64-unknown-linux-musl83            os: ubuntu-latest84            bin: jrsonnet85            name: jrsonnet-linux-amd648687          # Windows88          - target: i686-pc-windows-msvc89            os: windows-latest90            bin: jrsonnet.exe91            name: jrsonnet-windows-i686.exe92          - target: x86_64-pc-windows-msvc93            os: windows-latest94            bin: jrsonnet.exe95            name: jrsonnet-windows-amd64.exe9697          # Apple98          - target: aarch64-apple-darwin99            os: macOS-latest100            bin: jrsonnet101            name: jrsonnet-darwin-aarch64102          - target: x86_64-apple-darwin103            os: macOS-latest104            bin: jrsonnet105            name: jrsonnet-darwin-amd64106    runs-on: ${{ matrix.os }}107    steps:108      - name: Install stable toolchain109        uses: actions-rs/toolchain@v1110        with:111          toolchain: stable112          override: true113          target: ${{ matrix.target }}114115      - name: Checkout116        uses: actions/checkout@v2117118      - name: Add experimental flags119        if: ${{ endsWith(github.ref, '-test' )}}120        run: echo 'EXPERIMENTAL_FLAGS=--features=experimental' >> $GITHUB_ENV121122      - name: Linux x86 cross compiler123        if: ${{ startsWith(matrix.target, 'i686-unknown-linux-') }}124        run: sudo apt install gcc-multilib125126      - name: ARM cross compiler127        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}128        uses: actions-rs/cargo@v1129        with:130          command: install131          args: cross132133      - name: ARM gcc134        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}135        run: sudo apt install gcc-aarch64-linux-gnu136137      - name: Musl gcc138        if: ${{ endsWith(matrix.target, '-musl') }}139        run: sudo apt install musl musl-tools140141      - name: Run cross build142        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}143        shell: bash144        run: cross build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}145146      - name: Run build147        if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}148        uses: actions-rs/cargo@v1149        with:150          command: build151          args: --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}152153      - name: Package154        shell: bash155        run: |156          cd target/${{ matrix.target }}/release157158          cp ${{ matrix.bin }} ../../../${{ matrix.name }}159          cd -160161      - name: Generate SHA-256162        run: shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256163164      - name: Publish165        uses: softprops/action-gh-release@v1166        with:167          draft: true168          files: "jrsonnet*"169        env:170          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}