diff --git a/.github/workflows/build-aarch64-apple-darwin.yaml b/.github/workflows/build-aarch64-apple-darwin.yaml index 731bd10..945a348 100644 --- a/.github/workflows/build-aarch64-apple-darwin.yaml +++ b/.github/workflows/build-aarch64-apple-darwin.yaml @@ -6,11 +6,11 @@ on: release_version: description: "Xtensa Rust release version to build" required: true - default: '1.90.0.0' + default: '1.91.1.0' release_tag: - description: "Release tag where artifacts will be stored (e.g. v1.90.0.0, untagged-00000)" + description: "Release tag where artifacts will be stored (e.g. v1.91.1.0, untagged-00000)" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" jobs: get_release: diff --git a/.github/workflows/build-aarch64-unknown-linux-gnu.yaml b/.github/workflows/build-aarch64-unknown-linux-gnu.yaml index a171bdd..13eb5ed 100644 --- a/.github/workflows/build-aarch64-unknown-linux-gnu.yaml +++ b/.github/workflows/build-aarch64-unknown-linux-gnu.yaml @@ -6,11 +6,11 @@ on: release_version: description: "Xtensa Rust release version to build" required: true - default: '1.90.0.0' + default: '1.91.1.0' release_tag: - description: "Release tag where artifacts will be stored (e.g. v1.90.0.0, untagged-00000)" + description: "Release tag where artifacts will be stored (e.g. v1.91.1.0, untagged-00000)" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" jobs: get_release: diff --git a/.github/workflows/build-rust-src.yaml b/.github/workflows/build-rust-src.yaml index bf199b7..2dfe73e 100644 --- a/.github/workflows/build-rust-src.yaml +++ b/.github/workflows/build-rust-src.yaml @@ -6,11 +6,11 @@ on: release_version: description: "Xtensa Rust release version to build" required: true - default: '1.90.0.0' + default: '1.91.1.0' release_tag: - description: "Release tag where artifacts will be stored (e.g. v1.90.0.0, untagged-00000)" + description: "Release tag where artifacts will be stored (e.g. v1.91.1.0, untagged-00000)" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" jobs: get_release: diff --git a/.github/workflows/build-x86_64-pc-windows-msvc.yaml b/.github/workflows/build-x86_64-pc-windows-msvc.yaml index 7f56d86..d88d3d7 100644 --- a/.github/workflows/build-x86_64-pc-windows-msvc.yaml +++ b/.github/workflows/build-x86_64-pc-windows-msvc.yaml @@ -6,11 +6,11 @@ on: release_version: description: "Xtensa Rust release version to build" required: true - default: '1.90.0.0' + default: '1.91.1.0' release_tag: - description: "Release tag where artifacts will be stored (e.g. v1.90.0.0, untagged-00000)" + description: "Release tag where artifacts will be stored (e.g. v1.91.1.0, untagged-00000)" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" jobs: get_release: diff --git a/.github/workflows/build-x86_64-unknown-linux-gnu.yaml b/.github/workflows/build-x86_64-unknown-linux-gnu.yaml index fcd7996..00f93a4 100644 --- a/.github/workflows/build-x86_64-unknown-linux-gnu.yaml +++ b/.github/workflows/build-x86_64-unknown-linux-gnu.yaml @@ -5,11 +5,11 @@ on: release_version: description: "Xtensa Rust release version to build" required: true - default: "1.90.0.0" + default: "1.91.1.0" release_tag: - description: "Release tag where artifacts will be stored (e.g. v1.90.0.0, untagged-00000)" + description: "Release tag where artifacts will be stored (e.g. v1.91.1.0, untagged-00000)" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" jobs: get_release: @@ -38,22 +38,33 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [linux-x86_64-self-hosted] + os: [macos-m1-self-hosted] include: - - os: linux-x86_64-self-hosted + - os: macos-m1-self-hosted ASSET_PATH: "build/dist/rust-nightly-x86_64-unknown-linux-gnu.tar.xz" ASSET_NAME: "rust-${{ github.event.inputs.release_version }}-x86_64-unknown-linux-gnu.tar.xz" ASSET_CONTENT_TYPE: "application/x-tar" steps: - - name: Initialize Docker + - name: Initialize docker run: | + if ! launchctl list | grep -q com.docker.docker; then + echo "Starting Docker..." + open --background -a Docker + # Wait for Docker to start + while ! docker system info > /dev/null 2>&1; do + echo "Waiting for Docker to start..." + sleep 10 + done + else + echo "Docker is already running." + fi docker container rm rust-linux || echo "Container name rust-linux is available" - name: Checkout repository uses: actions/checkout@v5 - name: Build construction container run: | cd support/rust-build/x86_64-unknown-linux-gnu - docker build -f Containerfile -t ubuntu-builder . + docker build -t ubuntu-builder -f Containerfile . - name: Build Rust run: | docker run -e RELEASE_VERSION='${{ github.event.inputs.release_version }}' --name rust-linux ubuntu-builder ./build.sh diff --git a/.github/workflows/prepare-release.yaml b/.github/workflows/prepare-release.yaml index c4fd3cf..f4cb2aa 100644 --- a/.github/workflows/prepare-release.yaml +++ b/.github/workflows/prepare-release.yaml @@ -6,7 +6,7 @@ on: next_release: description: "Next Xtensa Rust release version" required: true - default: "v1.90.0.0" + default: "v1.91.1.0" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish-idf-rust-tags.yml b/.github/workflows/publish-idf-rust-tags.yml index a6bbc76..b71cde0 100644 --- a/.github/workflows/publish-idf-rust-tags.yml +++ b/.github/workflows/publish-idf-rust-tags.yml @@ -6,7 +6,7 @@ on: toolchain-version: description: "Version of Rust toolchain" required: true - default: "1.90.0.0" + default: "1.91.1.0" publish: description: "Publish the tags to Dockehub?" required: true diff --git a/support/rust-build/Repackage-RustRelease.ps1 b/support/rust-build/Repackage-RustRelease.ps1 index 062adbb..aa62ad2 100644 --- a/support/rust-build/Repackage-RustRelease.ps1 +++ b/support/rust-build/Repackage-RustRelease.ps1 @@ -11,7 +11,7 @@ param ( $ErrorActionPreference = "Stop" $RustVersion="nightly" -$ReleaseVersion="1.90.0.0" +$ReleaseVersion="1.91.1.0" if (Test-Path -Path esp -PathType Container) { Remove-Item -Recurse -Force -Path esp diff --git a/support/rust-build/aarch64-unknown-linux-gnu/build.sh b/support/rust-build/aarch64-unknown-linux-gnu/build.sh index 42b4fe6..7d881a6 100755 --- a/support/rust-build/aarch64-unknown-linux-gnu/build.sh +++ b/support/rust-build/aarch64-unknown-linux-gnu/build.sh @@ -5,4 +5,5 @@ set -e git clone --recursive --depth 1 --shallow-submodules https://github.com/esp-rs/rust.git -b "esp-${RELEASE_VERSION}" cd rust python3 src/bootstrap/configure.py --experimental-targets=Xtensa --release-channel=nightly --release-description="${RELEASE_VERSION}" --enable-extended --enable-cargo-native-static --tools=clippy,cargo,rustfmt,rust-analyzer-proc-macro-srv,src --dist-compression-formats='xz' --enable-lld + python3 x.py dist --stage 2 diff --git a/support/rust-build/x86_64-unknown-linux-gnu/Containerfile b/support/rust-build/x86_64-unknown-linux-gnu/Containerfile index 3e27b97..dd27cf9 100644 --- a/support/rust-build/x86_64-unknown-linux-gnu/Containerfile +++ b/support/rust-build/x86_64-unknown-linux-gnu/Containerfile @@ -3,9 +3,26 @@ FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive ENV LC_ALL=C.UTF-8 ENV LANG=C.UTF-8 -RUN apt-get update \ - && apt-get install -y vim nano git curl gcc ninja-build cmake libudev-dev python3 python3-pip libusb-1.0-0 libssl-dev \ - pkg-config libtinfo5 + +# The following block of commands are order sensitive! +# update _must_ come before adding declaring to dpkg we want amd64 packages else it fails +# we update before and after adding the arch to ensure we have the latest package lists +# this block ensures x86 dependencies are there for rosetta to use during various build steps +RUN apt-get update +RUN echo '\ +deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse\n\ +deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse\n\ +deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse\n\ +deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse\n\ +' >> /etc/apt/sources.list +RUN apt-get update +RUN dpkg --add-architecture amd64 +RUN apt-get install libc6:amd64 libstdc++6:amd64 -y + +RUN apt-get install -y vim nano git curl gcc ninja-build cmake libudev-dev python3 python3-pip libusb-1.0-0 libssl-dev \ + pkg-config libtinfo5 \ + gcc-x86-64-linux-gnu \ + g++-x86-64-linux-gnu RUN adduser --disabled-password --gecos "" rust USER rust diff --git a/support/rust-build/x86_64-unknown-linux-gnu/build.sh b/support/rust-build/x86_64-unknown-linux-gnu/build.sh index cfb5221..a4ccd5d 100755 --- a/support/rust-build/x86_64-unknown-linux-gnu/build.sh +++ b/support/rust-build/x86_64-unknown-linux-gnu/build.sh @@ -4,5 +4,5 @@ set -e git clone --recursive --depth 1 --shallow-submodules https://github.com/esp-rs/rust.git -b "esp-${RELEASE_VERSION}" cd rust -python3 src/bootstrap/configure.py --experimental-targets=Xtensa --release-channel=nightly --release-description="${RELEASE_VERSION}" --enable-extended --enable-cargo-native-static --tools=clippy,cargo,rustfmt,rust-analyzer-proc-macro-srv,src --dist-compression-formats='xz' --enable-lld -python3 x.py dist --stage 2 \ No newline at end of file +python3 src/bootstrap/configure.py --experimental-targets=Xtensa --release-channel=nightly --release-description="${RELEASE_VERSION}" --enable-extended --enable-cargo-native-static --tools=clippy,cargo,rustfmt,rust-analyzer-proc-macro-srv,src,rustdoc --dist-compression-formats='xz' --enable-lld --host aarch64-unknown-linux-gnu,x86_64-unknown-linux-gnu --disable-docs +python3 x.py dist