diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index 017ab6fa92eea..5820db7d3168e 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -89,16 +89,16 @@ jobs: if: contains(github.ref, 'renovate/') run: git pull origin ${{ github.ref }} - name: Free space - if: inputs.os != 'windows' + if: "!contains(inputs.os, 'windows')" run: ./scripts/github-actions/free-disk-space.sh - name: Remove driver directories Windows - if: inputs.os == 'windows' + if: contains(inputs.os, 'windows') run: | rm "$env:ChromeWebDriver" -r -v rm "$env:EdgeWebDriver" -r -v rm "$env:GeckoWebDriver" -r -v - name: Remove driver directories Non-Windows - if: inputs.os != 'windows' + if: "!contains(inputs.os, 'windows')" run: | sudo rm -rf "$CHROMEWEBDRIVER" "$EDGEWEBDRIVER" "$GECKOWEBDRIVER" - name: Set Ruby version @@ -132,7 +132,7 @@ jobs: name: ${{ inputs.cache-key }} manifest: crates: rust/Cargo.Bazel.lock - rules_ruby++ruby+ruby: ${{ inputs.os == 'windows' && 'false' || 'rb/.ruby-version' }} + rules_ruby++ruby+ruby: ${{ contains(inputs.os, 'windows') && 'false' || 'rb/.ruby-version' }} repository-cache: true - name: Setup Bazel without caching if: inputs.caching == false @@ -150,7 +150,7 @@ jobs: fluxbox -display :99 & echo "DISPLAY=:99" >> "$GITHUB_ENV" - name: Set resolution - if: inputs.os == 'windows' && inputs.browser != '' + if: contains(inputs.os, 'windows') && inputs.browser != '' run: Set-DisplayResolution -Width 1920 -Height 1080 -Force - name: Setup Safari if: inputs.browser == 'safari' diff --git a/.github/workflows/ci-rust.yml b/.github/workflows/ci-rust.yml index 6b165b69cc05f..101faa8d6f559 100644 --- a/.github/workflows/ci-rust.yml +++ b/.github/workflows/ci-rust.yml @@ -36,6 +36,7 @@ jobs: - os: macos - os: ubuntu - os: windows + - os: windows-11-arm with: name: Tests (${{ matrix.os }}) cache-key: rust-test @@ -57,20 +58,31 @@ jobs: - name: "Update Rust" run: | rustup update - rustup toolchain install stable-i686-pc-windows-msvc - rustup default stable-i686-pc-windows-msvc + rustup target install i686-pc-windows-msvc + rustup target install aarch64-pc-windows-msvc rustc -vV - - name: "Build release binary" - run: cargo build --release + - name: "Build release binary (x86)" + run: cargo build --target i686-pc-windows-msvc --release working-directory: rust - - name: "Rename binary" - run: mv rust/target/release/selenium-manager.exe selenium-manager-windows.exe - - name: "Upload release binary" + - name: "Build release binary (arm64)" + run: cargo build --target aarch64-pc-windows-msvc --release + working-directory: rust + - name: "Rename binary (x86)" + run: mv rust/target/i686-pc-windows-msvc/release/selenium-manager.exe selenium-manager-windows.exe + - name: "Rename binary (arm64)" + run: mv rust/target/aarch64-pc-windows-msvc/release/selenium-manager.exe selenium-manager-windows-arm64.exe + - name: "Upload release binary (x86)" uses: actions/upload-artifact@v4 with: name: selenium-manager-windows path: selenium-manager-windows.exe retention-days: 6 + - name: "Upload release binary (arm64)" + uses: actions/upload-artifact@v4 + with: + name: selenium-manager-windows-arm64 + path: selenium-manager-windows-arm64.exe + retention-days: 6 windows-debug: name: "Windows Debug" @@ -87,20 +99,31 @@ jobs: - name: "Update Rust" run: | rustup update - rustup toolchain install stable-i686-pc-windows-msvc - rustup default stable-i686-pc-windows-msvc + rustup target install i686-pc-windows-msvc + rustup target install aarch64-pc-windows-msvc rustc -vV - - name: "Build release binary" - run: cargo build --profile dev + - name: "Build release binary (x86)" + run: cargo build --target i686-pc-windows-msvc --profile dev working-directory: rust - - name: "Rename binary" - run: mv rust/target/debug/selenium-manager.exe selenium-manager-windows-debug.exe - - name: "Upload release binary" + - name: "Build release binary (arm64)" + run: cargo build --target aarch64-pc-windows-msvc --profile dev + working-directory: rust + - name: "Rename binary (x86)" + run: mv rust/target/i686-pc-windows-msvc/debug/selenium-manager.exe selenium-manager-windows-debug.exe + - name: "Rename binary (arm64)" + run: mv rust/target/aarch64-pc-windows-msvc/debug/selenium-manager.exe selenium-manager-windows-arm64-debug.exe + - name: "Upload release binary (x86)" uses: actions/upload-artifact@v4 with: name: selenium-manager-windows-debug path: selenium-manager-windows-debug.exe retention-days: 6 + - name: "Upload release binary (arm64)" + uses: actions/upload-artifact@v4 + with: + name: selenium-manager-windows-arm64-debug + path: selenium-manager-windows-arm64-debug.exe + retention-days: 6 linux-stable: name: "Linux Stable" @@ -247,7 +270,8 @@ jobs: linux_sha=$(shasum -a 256 artifacts/selenium-manager-linux/selenium-manager-linux | awk '{print $1}') macos_sha=$(shasum -a 256 artifacts/selenium-manager-macos/selenium-manager-macos | awk '{print $1}') windows_sha=$(shasum -a 256 artifacts/selenium-manager-windows/selenium-manager-windows.exe | awk '{print $1}') - echo "{\"macos\": \"$macos_sha\", \"windows\": \"$windows_sha\", \"linux\": \"$linux_sha\"}" > latest.json + windows_arm64_sha=$(shasum -a 256 artifacts/selenium-manager-windows/selenium-manager-windows-arm64.exe | awk '{print $1}') + echo "{\"macos\": \"$macos_sha\", \"windows\": \"$windows_sha\", \"windows-arm64\": \"$windows_arm64_sha\", \"linux\": \"$linux_sha\"}" > latest.json git config --local user.email "selenium-ci@users.noreply.github.com" git config --local user.name "Selenium CI Bot" git add latest.json @@ -268,6 +292,8 @@ jobs: artifacts/selenium-manager-linux/selenium-manager-linux artifacts/selenium-manager-macos/selenium-manager-macos artifacts/selenium-manager-windows/selenium-manager-windows.exe + artifacts/selenium-manager-windows-arm64/selenium-manager-windows-arm64.exe artifacts/selenium-manager-linux-debug/selenium-manager-linux-debug.tar artifacts/selenium-manager-macos-debug/selenium-manager-macos-debug.tar artifacts/selenium-manager-windows-debug/selenium-manager-windows-debug.exe + artifacts/selenium-manager-windows-arm64-debug/selenium-manager-windows-arm64-debug.exe diff --git a/rust/src/electron.rs b/rust/src/electron.rs index 868e087111b54..ae089d98f26d0 100644 --- a/rust/src/electron.rs +++ b/rust/src/electron.rs @@ -207,7 +207,7 @@ impl SeleniumManager for ElectronManager { if X32.is(arch) { "win32-ia32" } else if ARM64.is(arch) { - "win32-arm64-x64" + "win32-arm64" } else { "win32-x64" } diff --git a/rust/src/firefox.rs b/rust/src/firefox.rs index 17b95933f5ba5..a71192f077d5f 100644 --- a/rust/src/firefox.rs +++ b/rust/src/firefox.rs @@ -554,7 +554,7 @@ impl SeleniumManager for FirefoxManager { if X32.is(arch) || major_browser_version < 42 { platform_label = "win32"; } else if ARM64.is(arch) { - platform_label = "win-aarch64"; + platform_label = "win64-aarch64"; } else { platform_label = "win64"; }