diff --git a/.github/workflows/bors.yml b/.github/workflows/bors.yml deleted file mode 100644 index 6ecf7c83ffe74..0000000000000 --- a/.github/workflows/bors.yml +++ /dev/null @@ -1,372 +0,0 @@ -name: CI (bors) - -on: - push: - branches: - - auto-libc - - try - -permissions: {} -jobs: - docker_linux_tier1: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Linux Tier1 - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - matrix: - target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - macos: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: macOS - runs-on: macos-13 - strategy: - fail-fast: true - matrix: - target: [ - x86_64-apple-darwin, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - - windows: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - include: - - target: x86_64-pc-windows-gnu - env: - ARCH_BITS: 64 - ARCH: x86_64 - - target: x86_64-pc-windows-msvc - - target: i686-pc-windows-gnu - env: - ARCH_BITS: 32 - ARCH: i686 - - target: i686-pc-windows-msvc - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - shell: bash - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - shell: bash - - style_check: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Style check - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh - - docker_linux_tier2: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Linux Tier2 - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - aarch64-linux-android, - aarch64-unknown-linux-gnu, - aarch64-unknown-linux-musl, - arm-linux-androideabi, - arm-unknown-linux-gnueabihf, - arm-unknown-linux-musleabihf, - i686-linux-android, - i686-unknown-linux-musl, - powerpc-unknown-linux-gnu, - powerpc64-unknown-linux-gnu, - powerpc64le-unknown-linux-gnu, - s390x-unknown-linux-gnu, - riscv64gc-unknown-linux-gnu, - # FIXME: A recent nightly causes a linker failure: - # https://github.com/rust-lang/rust/issues/76679 - # See this comment for more details: - # https://github.com/rust-lang/libc/pull/2225#issuecomment-880696737 - #wasm32-wasi, - sparc64-unknown-linux-gnu, - wasm32-unknown-emscripten, - x86_64-linux-android, - # FIXME: Exec format error (os error 8) - #x86_64-unknown-linux-gnux32, - x86_64-unknown-linux-musl, - # FIXME: It seems some items in `src/unix/mod.rs` - # aren't defined on redox actually. - # x86_64-unknown-redox, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # These targets are tier 3 or otherwise need to have CI build std via -Zbuild-std. - # Because of this, only the nightly compiler can be used on these targets. - docker_linux_build_std: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - if: ${{ false }} # This is currently broken - name: Docker Linux Build-Std Targets - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - strategy: - fail-fast: true - max-parallel: 12 - matrix: - target: [ - armv7-unknown-linux-uclibceabihf - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly INSTALL_RUST_SRC=1 sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 TOOLCHAIN=nightly LIBC_CI_ZBUILD_STD=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - # devkitpro's pacman needs to be connected from Docker. - docker_switch: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Docker Switch - needs: [docker_linux_tier1, style_check] - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Execute run-docker.sh - run: LIBC_CI=1 sh ./ci/run-docker.sh switch - - build_channels_linux: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: Build Channels Linux - needs: docker_linux_tier2 - runs-on: ubuntu-22.04 - env: - OS: linux - strategy: - fail-fast: true - max-parallel: 5 - matrix: - toolchain: [ - stable, - beta, - nightly, - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - #1.13.0, - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - ] - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - - build_channels_macos: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels macOS - needs: macos - env: - OS: macos - strategy: - fail-fast: true - max-parallel: 4 - matrix: - target: - - { toolchain: stable, os: macos-13 } - - { toolchain: beta, os: macos-13 } - - { toolchain: nightly, os: macos-13 } - # Use macOS 11 for older toolchains as newer Xcode donesn't work well. - # FIXME: Disabled due to: - # error: failed to parse registry's information for: serde - #- { toolchain: 1.13.0, os: macos-11 } - - { toolchain: 1.19.0, os: macos-11 } - - { toolchain: 1.24.0, os: macos-11 } - - { toolchain: 1.25.0, os: macos-11 } - - { toolchain: 1.30.0, os: macos-11 } - runs-on: ${{ matrix.target.os }} - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/install-rust.sh - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.target.toolchain }} sh ./ci/build.sh - - build_channels_windows: - permissions: - contents: read # to fetch code (actions/checkout) - - name: Build Channels Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - toolchain: [ - 1.19.0, - 1.24.0, - 1.25.0, - 1.30.0, - stable, - ] - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Execute build.sh - run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh - shell: bash - - check_cfg: - permissions: - actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) - contents: read # to fetch code (actions/checkout) - - name: "Check #[cfg]s" - runs-on: ubuntu-22.04 - steps: - - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD - with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TOOLCHAIN=nightly sh ./ci/install-rust.sh - - name: Build with check-cfg - run: LIBC_CI=1 LIBC_CHECK_CFG=1 cargo build -Z unstable-options -Z check-cfg - - # These jobs doesn't actually test anything, but they're only used to tell - # bors the build completed, as there is no practical way to detect when a - # workflow is successful listening to webhooks only. - # - # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB! - - end_success: - name: bors build finished - if: github.event.pusher.name == 'bors' && success() - runs-on: ubuntu-22.04 - needs: [ - docker_linux_tier1, - docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - ] - - steps: - - name: Mark the job as successful - run: exit 0 - - end_failure: - name: bors build finished - if: github.event.pusher.name == 'bors' && (failure() || cancelled()) - runs-on: ubuntu-22.04 - needs: [ - docker_linux_tier1, - docker_linux_tier2, - #docker_linux_build_std, - macos, - windows, - style_check, - docker_switch, - build_channels_linux, - build_channels_macos, - build_channels_windows, - ] - - steps: - - name: Mark the job as a failure - run: exit 1 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c7784fc117df9..c7e324145211a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,76 +11,29 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: - docker_linux_tier1: - name: Docker Linux Tier1 + docker_linux_tier2: + permissions: + actions: write # to cancel workflows (rust-lang/simpleinfra/github-actions/cancel-outdated-builds) + contents: read # to fetch code (actions/checkout) + + name: Docker Linux Tier2 runs-on: ubuntu-22.04 strategy: fail-fast: true + max-parallel: 12 matrix: target: [ - i686-unknown-linux-gnu, - x86_64-unknown-linux-gnu, + aarch64-linux-android, + arm-linux-androideabi, + i686-linux-android, + x86_64-linux-android, ] steps: + - uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@HEAD + with: + github_token: "${{ secrets.GITHUB_TOKEN }}" - uses: actions/checkout@v4 - name: Setup Rust toolchain run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - name: Execute run-docker.sh run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }} - - macos: - name: macOS - runs-on: macos-13 - strategy: - fail-fast: true - matrix: - target: [ - x86_64-apple-darwin, - ] - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - - windows: - name: Windows - runs-on: windows-2022 - env: - OS: windows - strategy: - fail-fast: true - matrix: - include: - - target: x86_64-pc-windows-gnu - env: - ARCH_BITS: 64 - ARCH: x86_64 - - target: x86_64-pc-windows-msvc - - target: i686-pc-windows-gnu - env: - ARCH_BITS: 32 - ARCH: i686 - - target: i686-pc-windows-msvc - steps: - - uses: actions/checkout@v4 - - name: Self-update rustup - run: rustup self update - shell: bash - - name: Setup Rust toolchain - run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh - shell: bash - - name: Execute run.sh - run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }} - shell: bash - - style_check: - name: Style check - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Setup Rust toolchain - run: sh ./ci/install-rust.sh - - name: Check style - run: sh ci/style.sh diff --git a/ci/android-install-sdk.sh b/ci/android-install-sdk.sh index 5e7037df044ef..13ea2d6bbc2ed 100644 --- a/ci/android-install-sdk.sh +++ b/ci/android-install-sdk.sh @@ -9,18 +9,18 @@ set -ex # located in https://github.com/appunite/docker by just wrapping it in a script # which apparently magically accepts the licenses. -SDK=6609375 -mkdir -p sdk/cmdline-tools +SDK=10406996 +mkdir -p sdk wget -q --tries=20 https://dl.google.com/android/repository/commandlinetools-linux-${SDK}_latest.zip -unzip -q -d sdk/cmdline-tools commandlinetools-linux-${SDK}_latest.zip +unzip -q -d sdk commandlinetools-linux-${SDK}_latest.zip case "$1" in arm | armv7) - api=24 + api=28 image="system-images;android-${api};default;armeabi-v7a" ;; aarch64) - api=24 + api=28 image="system-images;android-${api};google_apis;arm64-v8a" ;; i686) @@ -51,8 +51,8 @@ echo '#Fri Nov 03 10:11:27 CET 2017 count=0' >> /root/.android/repositories.cfg # # | grep -v = || true removes the progress bar output from the sdkmanager # which produces an insane amount of output. -yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --licenses --no_https | grep -v = || true -yes | ./sdk/cmdline-tools/tools/bin/sdkmanager --no_https \ +yes | ./sdk/cmdline-tools/bin/sdkmanager --licenses --no_https | grep -v = || true +yes | ./sdk/cmdline-tools/bin/sdkmanager --no_https \ "platform-tools" \ "platforms;android-${api}" \ "${image}" | grep -v = || true @@ -65,7 +65,7 @@ unzip -q -d sdk emulator-linux_x64-9058569.zip cp /android/android-emulator-package.xml /android/sdk/emulator/package.xml echo "no" | - ./sdk/cmdline-tools/tools/bin/avdmanager create avd \ + ./sdk/cmdline-tools/bin/avdmanager create avd \ --name "${1}" \ --package "${image}" | grep -v = || true diff --git a/ci/docker/aarch64-linux-android/Dockerfile b/ci/docker/aarch64-linux-android/Dockerfile index 7b8bdcfdadb32..0852d81b88531 100644 --- a/ci/docker/aarch64-linux-android/Dockerfile +++ b/ci/docker/aarch64-linux-android/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get install -y --no-install-recommends \ python3-distutils \ unzip \ expect \ - openjdk-8-jre \ + openjdk-21-jre \ libstdc++6:i386 \ libpulse0 @@ -19,13 +19,13 @@ WORKDIR /android/ COPY android* /android/ ENV ANDROID_ARCH=aarch64 -ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools +ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools:/android/sdk/platform-tools RUN sh /android/android-install-ndk.sh RUN sh /android/android-install-sdk.sh $ANDROID_ARCH RUN mv /root/.android /tmp RUN chmod 777 -R /tmp/.android -RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/* +RUN chmod 755 /android/sdk/cmdline-tools/* /android/sdk/emulator/qemu/linux-x86_64/* ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android28-clang \ diff --git a/ci/docker/arm-linux-androideabi/Dockerfile b/ci/docker/arm-linux-androideabi/Dockerfile index d0fb3176de7e7..4df5e326f3fc3 100644 --- a/ci/docker/arm-linux-androideabi/Dockerfile +++ b/ci/docker/arm-linux-androideabi/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get install -y --no-install-recommends \ python3-distutils \ unzip \ expect \ - openjdk-8-jre \ + openjdk-21-jre \ libstdc++6:i386 \ libpulse0 @@ -19,13 +19,13 @@ WORKDIR /android/ COPY android* /android/ ENV ANDROID_ARCH=arm -ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools +ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools:/android/sdk/platform-tools RUN sh /android/android-install-ndk.sh RUN sh /android/android-install-sdk.sh $ANDROID_ARCH RUN mv /root/.android /tmp RUN chmod 777 -R /tmp/.android -RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/* +RUN chmod 755 /android/sdk/cmdline-tools/* /android/sdk/emulator/qemu/linux-x86_64/* ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi28-clang \ diff --git a/ci/docker/i686-linux-android/Dockerfile b/ci/docker/i686-linux-android/Dockerfile index a78c7cb6e8457..5c503d584157c 100644 --- a/ci/docker/i686-linux-android/Dockerfile +++ b/ci/docker/i686-linux-android/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get install -y --no-install-recommends \ python3-distutils \ unzip \ expect \ - openjdk-8-jre \ + openjdk-21-jre \ libstdc++6:i386 \ libpulse0 @@ -19,13 +19,13 @@ WORKDIR /android/ COPY android* /android/ ENV ANDROID_ARCH=i686 -ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools +ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools:/android/sdk/platform-tools RUN sh /android/android-install-ndk.sh RUN sh /android/android-install-sdk.sh $ANDROID_ARCH RUN mv /root/.android /tmp RUN chmod 777 -R /tmp/.android -RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/* +RUN chmod 755 /android/sdk/cmdline-tools/* /android/sdk/emulator/qemu/linux-x86_64/* ENV PATH=$PATH:/rust/bin \ CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android28-clang \