git.delta.rocks / jrsonnet / refs/commits / 57f709a58e12

difftreelog

source

.github/workflows/release.yaml4.2 KiBsourcehistory
1name: Release2on:3  push:4    tags: [ 'v*' ]5jobs:6  tests:7    uses: ./.github/workflows/test.yaml89  cargo-release:10    if: !endsWith(github.ref, '-test')11    needs: [ tests ]12    runs-on: ubuntu-latest13    steps:14      - uses: actions/checkout@v4.1.415      - name: Install stable toolchain16        uses: actions-rust-lang/setup-rust-toolchain@v1.8.017        with:18          toolchain: stable19      - run: cargo install cargo-release20      - run: cargo login ${{ secrets.CARGO_TOKEN }}21      - run: cargo release --no-dev-version --skip-push --skip-tag --no-confirm2223  github-release:24    needs: [ tests ]25    strategy:26      matrix:27        target:28          # Linux build notes:29          # While musl targets are not as supported as gnu, those are most relevant to users,30          # which want to download binaries from github, as glibc has compatibility issues31          # with older distros3233          # Tier 134          - i686-pc-windows-msvc35          - x86_64-apple-darwin36          - x86_64-pc-windows-msvc3738          # Tier 239          - aarch64-apple-darwin40          - aarch64-unknown-linux-musl41          - i686-unknown-linux-musl42          - x86_64-unknown-linux-musl43        include:44          # Linux45          - target: aarch64-unknown-linux-musl46            os: ubuntu-latest47            bin: jrsonnet48            name: jrsonnet-linux-aarch6449          - target: i686-unknown-linux-musl50            os: ubuntu-latest51            bin: jrsonnet52            name: jrsonnet-linux-i68653          - target: x86_64-unknown-linux-musl54            os: ubuntu-latest55            bin: jrsonnet56            name: jrsonnet-linux-amd645758          # Windows59          - target: i686-pc-windows-msvc60            os: windows-latest61            bin: jrsonnet.exe62            name: jrsonnet-windows-i686.exe63          - target: x86_64-pc-windows-msvc64            os: windows-latest65            bin: jrsonnet.exe66            name: jrsonnet-windows-amd64.exe6768          # Apple69          - target: aarch64-apple-darwin70            os: macOS-latest71            bin: jrsonnet72            name: jrsonnet-darwin-aarch6473          - target: x86_64-apple-darwin74            os: macOS-latest75            bin: jrsonnet76            name: jrsonnet-darwin-amd6477    runs-on: ${{ matrix.os }}78    steps:79      - name: Fetch apt repo updates80        if: ${{ startsWith(matrix.os, 'ubuntu-') }}81        run: sudo apt update8283      - name: Install stable toolchain84        uses: actions-rust-lang/setup-rust-toolchain@v1.8.085        with:86          toolchain: stable87          target: ${{ matrix.target }}8889      - uses: actions/checkout@v4.1.49091      - name: Add experimental flags92        if: ${{ endsWith(github.ref, '-test' )}}93        run: echo 'EXPERIMENTAL_FLAGS=--features=experimental' >> $GITHUB_ENV9495      - name: Linux x86 cross compiler96        if: ${{ startsWith(matrix.target, 'i686-unknown-linux-') }}97        run: sudo apt install gcc-multilib9899      - name: ARM cross compiler100        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}101        uses: actions-rs/cargo@v1102        with:103          command: install104          args: cross105106      - name: ARM gcc107        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}108        run: sudo apt install gcc-aarch64-linux-gnu109110      - name: Musl gcc111        if: ${{ endsWith(matrix.target, '-musl') }}112        run: sudo apt install musl musl-tools113114      - name: Run cross build115        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}116        shell: bash117        run: cross build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}118119      - name: Run build120        if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}121        run: cargo build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}122123      - name: Package124        shell: bash125        run: |126          cd target/${{ matrix.target }}/release127128          cp ${{ matrix.bin }} ../../../${{ matrix.name }}129          cd -130131      - name: Generate SHA-256132        run: shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256133134      - name: Publish135        uses: softprops/action-gh-release@v2.0.4136        with:137          draft: true138          files: "jrsonnet*"139        env:140          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}