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

difftreelog

source

.github/workflows/release.yml5.0 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: Fetch apt repo updates107        run: sudo apt update108109      - name: Install stable toolchain110        uses: actions-rs/toolchain@v1111        with:112          toolchain: stable113          override: true114          target: ${{ matrix.target }}115116      - name: Checkout117        uses: actions/checkout@v2118119      - name: Add experimental flags120        if: ${{ endsWith(github.ref, '-test' )}}121        run: echo 'EXPERIMENTAL_FLAGS=--features=experimental' >> $GITHUB_ENV122123      - name: Linux x86 cross compiler124        if: ${{ startsWith(matrix.target, 'i686-unknown-linux-') }}125        run: sudo apt install gcc-multilib126127      - name: ARM cross compiler128        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}129        uses: actions-rs/cargo@v1130        with:131          command: install132          args: cross133134      - name: ARM gcc135        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}136        run: sudo apt install gcc-aarch64-linux-gnu137138      - name: Musl gcc139        if: ${{ endsWith(matrix.target, '-musl') }}140        run: sudo apt install musl musl-tools141142      - name: Run cross build143        if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}144        shell: bash145        run: cross build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}146147      - name: Run build148        if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}149        uses: actions-rs/cargo@v1150        with:151          command: build152          args: --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}153154      - name: Package155        shell: bash156        run: |157          cd target/${{ matrix.target }}/release158159          cp ${{ matrix.bin }} ../../../${{ matrix.name }}160          cd -161162      - name: Generate SHA-256163        run: shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256164165      - name: Publish166        uses: softprops/action-gh-release@v1167        with:168          draft: true169          files: "jrsonnet*"170        env:171          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}