From 1ac39708554b196f54ebc414f3e78574d40f2d8f Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 10 Sep 2019 18:16:26 -0700 Subject: [PATCH] Migrate to github actions from Azure Pipelines Less need to manage users, more concurrency, and interface is all in one! --- .github/workflows/main.yml | 146 +++++++++++++++++++++++++++++++++++++ README.md | 2 - azure-pipelines.yml | 80 -------------------- ci/azure-install-rust.yml | 30 -------- ci/azure-steps.yml | 28 ------- 5 files changed, 146 insertions(+), 140 deletions(-) create mode 100644 .github/workflows/main.yml delete mode 100644 azure-pipelines.yml delete mode 100644 ci/azure-install-rust.yml delete mode 100644 ci/azure-steps.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..f9fb844 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,146 @@ +name: CI +on: [push, pull_request] + +jobs: + test: + name: Test + runs-on: ${{ matrix.os }} + strategy: + matrix: + target: + - aarch64-unknown-linux-gnu + - arm-unknown-linux-gnueabi + - arm-unknown-linux-gnueabihf + - i586-unknown-linux-gnu + - i686-unknown-linux-gnu + - mips-unknown-linux-gnu + - mips64-unknown-linux-gnuabi64 + - mips64el-unknown-linux-gnuabi64 + - mipsel-unknown-linux-gnu + - powerpc-unknown-linux-gnu + - powerpc64-unknown-linux-gnu + - powerpc64le-unknown-linux-gnu + - thumbv6m-none-eabi + - thumbv7em-none-eabi + - thumbv7em-none-eabihf + - thumbv7m-none-eabi + - wasm32-unknown-unknown + - x86_64-unknown-linux-gnu + - x86_64-apple-darwin + - i686-pc-windows-msvc + - x86_64-pc-windows-msvc + - i686-pc-windows-gnu + - x86_64-pc-windows-gnu + include: + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: arm-unknown-linux-gnueabi + os: ubuntu-latest + rust: nightly + - target: arm-unknown-linux-gnueabihf + os: ubuntu-latest + rust: nightly + - target: i586-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: i686-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: mips-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: mips64-unknown-linux-gnuabi64 + os: ubuntu-latest + rust: nightly + - target: mips64el-unknown-linux-gnuabi64 + os: ubuntu-latest + rust: nightly + - target: mipsel-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: powerpc-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: powerpc64-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: powerpc64le-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: thumbv6m-none-eabi + os: ubuntu-latest + rust: nightly + - target: thumbv7em-none-eabi + os: ubuntu-latest + rust: nightly + - target: thumbv7em-none-eabihf + os: ubuntu-latest + rust: nightly + - target: thumbv7m-none-eabi + os: ubuntu-latest + rust: nightly + - target: wasm32-unknown-unknown + os: ubuntu-latest + rust: nightly + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + rust: nightly + - target: x86_64-apple-darwin + os: macos-latest + rust: nightly + - target: i686-pc-windows-msvc + os: windows-latest + rust: nightly + - target: x86_64-pc-windows-msvc + os: windows-latest + rust: nightly + - target: i686-pc-windows-gnu + os: windows-latest + rust: nightly-i686-gnu + - target: x86_64-pc-windows-gnu + os: windows-latest + rust: nightly-x86_64-gnu + steps: + - uses: actions/checkout@master + with: + submodules: true + - name: Install Rust (rustup) + run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} + if: matrix.os != 'macos-latest' + - name: Install Rust (macos) + run: | + curl https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly + echo "##[add-path]$HOME/.cargo/bin" + if: matrix.os == 'macos-latest' + - run: rustup target add ${{ matrix.target }} + - name: Download compiler-rt reference sources + run: | + curl -L -o code.tar.gz https://github.com/rust-lang/llvm-project/archive/rustc/8.0-2019-03-18.tar.gz + tar xzf code.tar.gz --strip-components 1 llvm-project-rustc-8.0-2019-03-18/compiler-rt + echo "##[set-env name=RUST_COMPILER_RT_ROOT]./compiler-rt" + shell: bash + + # Non-linux tests just use our raw script + - run: ./ci/run.sh ${{ matrix.target }} + if: matrix.os != 'ubuntu-latest' + shell: bash + + # Wasm is special and is just build as a smoke test + - run: cargo build --target ${{ matrix.target }} + if: matrix.target == 'wasm32-unknown-unknown' + + # Otherwise we use our docker containers to run builds + - run: cargo generate-lockfile && ./ci/run-docker.sh ${{ matrix.target }} + if: matrix.target != 'wasm32-unknown-unknown' && matrix.os == 'ubuntu-latest' + + rustfmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + submodules: true + - name: Install Rust + run: rustup update stable && rustup default stable && rustup component add rustfmt + - run: cargo fmt -- --check diff --git a/README.md b/README.md index f0724bf..262e984 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # `compiler-builtins` -[![Build Status](https://dev.azure.com/rust-lang/compiler-builtins/_apis/build/status/rust-lang-nursery.compiler-builtins?branchName=master)](https://dev.azure.com/rust-lang/compiler-builtins/_build/latest?definitionId=6&branchName=master) - > Porting `compiler-rt` intrinsics to Rust See [rust-lang/rust#35437][0]. diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index eac3fb5..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,80 +0,0 @@ -trigger: - - master - -jobs: - - job: Linux - pool: - vmImage: ubuntu-16.04 - steps: - - template: ci/azure-steps.yml - strategy: - matrix: - aarch64: - TARGET: aarch64-unknown-linux-gnu - arm: - TARGET: arm-unknown-linux-gnueabi - armhf: - TARGET: arm-unknown-linux-gnueabihf - i586: - TARGET: i586-unknown-linux-gnu - i686: - TARGET: i686-unknown-linux-gnu - mips: - TARGET: mips-unknown-linux-gnu - mips64: - TARGET: mips64-unknown-linux-gnuabi64 - mips64el: - TARGET: mips64el-unknown-linux-gnuabi64 - mipsel: - TARGET: mipsel-unknown-linux-gnu - powerpc: - TARGET: powerpc-unknown-linux-gnu - powerpc64: - TARGET: powerpc64-unknown-linux-gnu - powerpc64le: - TARGET: powerpc64le-unknown-linux-gnu - thumbv6m: - TARGET: thumbv6m-none-eabi - thumbv7em: - TARGET: thumbv7em-none-eabi - thumbv7emhf: - TARGET: thumbv7em-none-eabihf - thumbv7m: - TARGET: thumbv7m-none-eabi - wasm32: - TARGET: wasm32-unknown-unknown - ONLY_BUILD: 1 - x86_64: - TARGET: x86_64-unknown-linux-gnu - - - job: macOS - pool: - vmImage: macos-10.13 - steps: - - template: ci/azure-steps.yml - strategy: - matrix: - x86_64: - TARGET: x86_64-apple-darwin - i686: - TARGET: i686-apple-darwin - - - job: Windows - pool: - vmImage: 'vs2017-win2016' - steps: - - template: ci/azure-steps.yml - strategy: - matrix: - i686-msvc: - TARGET: i686-pc-windows-msvc - x86_64-msvc: - TARGET: x86_64-pc-windows-msvc - i686-gnu: - TARGET: i686-pc-windows-gnu - INTRINSICS_FAILS_WITH_MEM_FEATURE: 1 - DEBUG_LTO_BUILD_DOESNT_WORK: 1 - x86_64-gnu: - TARGET: x86_64-pc-windows-gnu - INTRINSICS_FAILS_WITH_MEM_FEATURE: 1 - DEBUG_LTO_BUILD_DOESNT_WORK: 1 diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml deleted file mode 100644 index d0255f8..0000000 --- a/ci/azure-install-rust.yml +++ /dev/null @@ -1,30 +0,0 @@ -parameters: - toolchain: 'nightly' - -steps: - - bash: | - set -e - if command -v rustup; then - rustup update $TOOLCHAIN - rustup default $TOOLCHAIN - else - curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $TOOLCHAIN - echo "##vso[task.prependpath]$HOME/.cargo/bin" - fi - displayName: Install rust - condition: ne( variables['Agent.OS'], 'Windows_NT' ) - env: - TOOLCHAIN: ${{ parameters.toolchain }} - - - script: | - rustup update --no-self-update %TOOLCHAIN%-%TARGET% - rustup default %TOOLCHAIN%-%TARGET% - displayName: Install rust - condition: eq( variables['Agent.OS'], 'Windows_NT' ) - env: - TOOLCHAIN: ${{ parameters.toolchain }} - - - script: | - rustc -Vv - cargo -V - displayName: Query rust and cargo versions diff --git a/ci/azure-steps.yml b/ci/azure-steps.yml deleted file mode 100644 index f08beca..0000000 --- a/ci/azure-steps.yml +++ /dev/null @@ -1,28 +0,0 @@ -steps: - - checkout: self - submodules: true - - - template: azure-install-rust.yml - - - bash: rustup target add $TARGET - displayName: Install Rust target - - - bash: | - set -e - curl -L https://github.com/rust-lang/llvm-project/archive/rustc/8.0-2019-03-18.tar.gz | \ - tar xzf - --strip-components 1 llvm-project-rustc-8.0-2019-03-18/compiler-rt - echo '##vso[task.setvariable variable=RUST_COMPILER_RT_ROOT]./compiler-rt' - displayName: "Download compiler-rt reference sources" - - - bash: ./ci/run.sh $TARGET - condition: ne( variables['Agent.OS'], 'Linux' ) - displayName: Run test script - - - bash: | - if [ "$ONLY_BUILD" = "1" ]; then - cargo build --target $TARGET - else - cargo generate-lockfile && ./ci/run-docker.sh $TARGET - fi - condition: eq( variables['Agent.OS'], 'Linux' ) - displayName: Run docker test script