| 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 |