name: CI on: [push, pull_request] jobs: # This job downloads and stores `cross` as an artifact, so that it can be # redownloaded across all of the jobs. Currently this copied pasted between # `ci.yml` and `deploy.yml`. Make sure to update both places when making # changes. install-cross: runs-on: ubuntu-latest steps: - uses: XAMPPRocky/get-github-release@v1 id: cross with: owner: rust-embedded repo: cross matches: ${{ matrix.platform }} token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/upload-artifact@v2 with: name: cross-${{ matrix.platform }} path: ${{ steps.cross.outputs.install_path }} strategy: matrix: platform: [linux-musl] windows: runs-on: windows-latest # Windows technically doesn't need this, but if we don't block windows on it # some of the windows jobs could fill up the concurrent job queue before # one of the install-cross jobs has started, so this makes sure all # artifacts are downloaded first. needs: install-cross steps: - uses: actions/checkout@v2 with: submodules: true - run: ci/set_rust_version.bash ${{ matrix.channel }} ${{ matrix.target }} shell: bash - run: ci/test.bash cargo ${{ matrix.target }} shell: bash strategy: fail-fast: false matrix: channel: [stable, beta, nightly] target: - i686-pc-windows-msvc - x86_64-pc-windows-msvc - i686-pc-windows-gnu - x86_64-pc-windows-gnu macos: runs-on: macos-latest # macOS isn't currently using this either, but see the note about Windows above. needs: install-cross steps: - uses: actions/checkout@v2 with: submodules: true - run: ci/set_rust_version.bash ${{ matrix.channel }} ${{ matrix.target }} - run: ci/test.bash cargo ${{ matrix.target }} strategy: fail-fast: false matrix: channel: [stable, beta, nightly] target: - x86_64-apple-darwin linux: runs-on: ubuntu-latest needs: install-cross steps: - uses: actions/checkout@v2 with: submodules: true - name: Download Cross uses: actions/download-artifact@v1 with: name: cross-linux-musl path: /tmp/ - run: chmod +x /tmp/cross - run: ci/set_rust_version.bash ${{ matrix.channel }} ${{ matrix.target }} - run: ci/test.bash /tmp/cross ${{ matrix.target }} strategy: fail-fast: false matrix: channel: [stable, beta, nightly] target: - aarch64-unknown-linux-gnu - aarch64-unknown-linux-musl #- arm-unknown-linux-gnueabi - arm-unknown-linux-gnueabihf #- arm-unknown-linux-musleabi - arm-unknown-linux-musleabihf #- armv5te-unknown-linux-musleabi - armv7-unknown-linux-gnueabihf - armv7-unknown-linux-musleabihf - i586-unknown-linux-gnu - i586-unknown-linux-musl - i686-unknown-linux-gnu - i686-unknown-linux-musl #- powerpc-unknown-linux-gnu #- powerpc64-unknown-linux-gnu #- powerpc64le-unknown-linux-gnu - s390x-unknown-linux-gnu - x86_64-unknown-linux-gnu - x86_64-unknown-linux-musl