diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index 16b93bb6f25e2..0d4759a675ecb 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 Python version @@ -130,7 +130,7 @@ jobs: bazelisk-cache: true bazelrc: common --color=yes # Workaround for long path issues: https://github.com/bazelbuild/bazel/pull/22532 - output-base: ${{ inputs.os == 'windows' && 'D://b' || '' }} + output-base: ${{ contains(inputs.os, 'windows') && 'D://b' || '' }} cache-version: 2 disk-cache: false external-cache: | @@ -159,10 +159,10 @@ 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: Disable 8dot3 short names - if: inputs.os == 'windows' + if: contains(inputs.os, 'windows') run: fsutil 8dot3name set 0 - name: Setup Safari if: inputs.browser == 'safari' diff --git a/.github/workflows/ci-rust.yml b/.github/workflows/ci-rust.yml index 75664c3fc6362..281f1112b16a5 100644 --- a/.github/workflows/ci-rust.yml +++ b/.github/workflows/ci-rust.yml @@ -38,6 +38,7 @@ jobs: - os: macos - os: ubuntu - os: windows + - os: windows-11-arm with: name: Tests (${{ matrix.os }}) os: ${{ matrix.os }} @@ -58,20 +59,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" @@ -88,20 +100,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" @@ -250,7 +273,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 @@ -271,6 +295,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 8f285a2c3dc68..6a63ade64ecbf 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 8256c8a14e86b..ae76214754047 100644 --- a/rust/src/firefox.rs +++ b/rust/src/firefox.rs @@ -550,7 +550,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"; }