difftreelog
ci rework build target list
in: master
1 file changed
.github/workflows/release.ymldiffbeforeafterboth1name: 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 # Tier 158 - aarch64-unknown-linux-gnu59 - i686-unknown-linux-gnu60 - x86_64-unknown-linux-gnu61 - x86_64-apple-darwin62 - i686-pc-windows-msvc63 - x86_64-pc-windows-msvc6465 # Other66 - x86_64-unknown-linux-musl67 include:68 - target: aarch64-unknown-linux-gnu69 os: ubuntu-latest70 bin: jrsonnet71 name: jrsonnet-linux-gnu-aarch6472 - target: i686-pc-windows-msvc73 os: windows-latest74 bin: jrsonnet.exe75 name: jrsonnet-windows-msvc-i686.exe76 - target: i686-unknown-linux-gnu77 os: ubuntu-latest78 bin: jrsonnet79 name: jrsonnet-linux-gnu-i68680 - target: x86_64-apple-darwin81 os: macOS-latest82 bin: jrsonnet83 name: jrsonnet-darwin-amd6484 - target: x86_64-pc-windows-msvc85 os: windows-latest86 bin: jrsonnet.exe87 name: jrsonnet-windows-msvc-amd64.exe88 - target: x86_64-unknown-linux-gnu89 os: ubuntu-latest90 bin: jrsonnet91 name: jrsonnet-linux-gnu-amd649293 - target: x86_64-unknown-linux-musl94 os: ubuntu-latest95 bin: jrsonnet96 name: jrsonnet-linux-static-amd6497 runs-on: ${{ matrix.os }}98 steps:99 - name: Install stable toolchain100 uses: actions-rs/toolchain@v1101 with:102 toolchain: stable103 override: true104 target: ${{ matrix.target }}105106 - name: Checkout107 uses: actions/checkout@v2108109 - name: Add experimental flags110 if: ${{ endsWith(github.ref, '-test' )}}111 run: echo 'EXPERIMENTAL_FLAGS=--features=experimental' >> $GITHUB_ENV112113 - name: Linux x86 cross compiler114 if: ${{ matrix.target == 'i686-unknown-linux-gnu' }}115 run: sudo apt install gcc-multilib116117 - name: Musl gcc118 if: ${{ endsWith(matrix.target, '-musl') }}119 run: sudo apt install musl musl-tools120121 - name: ARM cross compiler122 if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}123 uses: actions-rs/cargo@v1124 with:125 command: install126 args: cross127128 - name: ARM gcc129 if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}130 run: sudo apt install gcc-aarch64-linux-gnu131132 - name: Run ARM build133 if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}134 shell: bash135 run: cross build --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}136137 - name: Run ARM strip138 if: ${{ startsWith(matrix.target, 'aarch64-unknown-linux-') }}139 shell: bash140 run: aarch64-linux-gnu-strip target/${{ matrix.target }}/release/${{ matrix.bin }}141142 - name: Run build143 if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}144 uses: actions-rs/cargo@v1145 with:146 command: build147 args: --bin=jrsonnet --release --target ${{ matrix.target }} ${{ env.EXPERIMENTAL_FLAGS }}148149 - name: Run strip150 if: ${{ !startsWith(matrix.target, 'aarch64-unknown-linux-') }}151 shell: bash152 run: strip target/${{ matrix.target }}/release/${{ matrix.bin }}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 }}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-gnu-i68682 - target: x86_64-unknown-linux-musl83 os: ubuntu-latest84 bin: jrsonnet85 name: jrsonnet-linux-gnu-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 }}