Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 78 additions & 66 deletions .github/workflows/ci-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
permissions:
contents: read

env:
# Keep in sync with the rust_toolchains version in MODULE.bazel
RUST_VERSION: "1.98.1"

jobs:
tests:
name: Tests
Expand Down Expand Up @@ -50,11 +54,10 @@
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install stable-i686-pc-windows-msvc
rustup default stable-i686-pc-windows-msvc
rustup toolchain install ${{ env.RUST_VERSION }}-i686-pc-windows-msvc
rustup default ${{ env.RUST_VERSION }}-i686-pc-windows-msvc
rustc -vV
- name: "Build release binary"
run: cargo build --release
Expand All @@ -80,11 +83,10 @@
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install stable-i686-pc-windows-msvc
rustup default stable-i686-pc-windows-msvc
rustup toolchain install ${{ env.RUST_VERSION }}-i686-pc-windows-msvc
rustup default ${{ env.RUST_VERSION }}-i686-pc-windows-msvc
rustc -vV
- name: "Build release binary"
run: cargo build --profile dev
Expand All @@ -99,85 +101,92 @@
retention-days: 6

linux-stable:
name: "Linux Stable"
runs-on: ubuntu-latest
name: "Linux Stable (${{ matrix.arch }})"
runs-on: ${{ matrix.runner }}
needs: tests
if: ${{ !cancelled() && needs.tests.result != 'failure' && github.event_name != 'schedule' }}
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
runner: ubuntu-latest
target: x86_64-unknown-linux-musl
artifact: selenium-manager-linux
- arch: aarch64
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
artifact: selenium-manager-linux-aarch64
steps:
- name: "Checkout project"
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install musl toolchain"
run: sudo apt-get update && sudo apt-get install -y musl-tools
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install ${{ env.RUST_VERSION }}
rustup default ${{ env.RUST_VERSION }}
rustup target add ${{ matrix.target }}
rustc -vV
- name: "Install cross"
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: "Build release binary (x64)"
run: cross build --target x86_64-unknown-linux-musl --release
working-directory: rust
- name: "Build release binary (arm64)"
run: cross build --target aarch64-unknown-linux-musl --release
- name: "Build release binary"
run: cargo build --target ${{ matrix.target }} --release
working-directory: rust
env:
TARGET_CC: musl-gcc
- name: "Rename binary"

Check failure

Code scanning / CodeQL

Cache Poisoning via execution of untrusted code High

Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
schedule
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
run: |
mv rust/target/x86_64-unknown-linux-musl/release/selenium-manager selenium-manager-linux
mv rust/target/aarch64-unknown-linux-musl/release/selenium-manager selenium-manager-linux-arm64
- name: "Upload release binary"
uses: actions/upload-artifact@v7
with:
name: selenium-manager-linux
path: selenium-manager-linux
retention-days: 6
run: mv rust/target/${{ matrix.target }}/release/selenium-manager ${{ matrix.artifact }}
- name: "Upload release binary"
uses: actions/upload-artifact@v7
with:
name: selenium-manager-linux-arm64
path: selenium-manager-linux-arm64
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}
retention-days: 6

linux-debug:
name: "Linux Debug"
runs-on: ubuntu-latest
name: "Linux Debug (${{ matrix.arch }})"
runs-on: ${{ matrix.runner }}
needs: tests
if: ${{ !cancelled() && needs.tests.result != 'failure' && github.event_name != 'schedule' && github.event.repository.fork == false && (github.ref == 'refs/heads/trunk' || inputs.release) }}
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
runner: ubuntu-latest
target: x86_64-unknown-linux-musl
artifact: selenium-manager-linux-debug
- arch: aarch64
runner: ubuntu-24.04-arm
target: aarch64-unknown-linux-musl
artifact: selenium-manager-linux-aarch64-debug
steps:
- name: "Checkout project"
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install musl toolchain"
run: sudo apt-get update && sudo apt-get install -y musl-tools
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install ${{ env.RUST_VERSION }}
rustup default ${{ env.RUST_VERSION }}
rustup target add ${{ matrix.target }}
rustc -vV
- name: "Install cross"
run: |
cargo install cross --git https://github.com/cross-rs/cross
- name: "Build release binary (x64)"
run: |
cross build --target x86_64-unknown-linux-musl --profile dev
cd target/x86_64-unknown-linux-musl/debug
tar -cvf ../../../../selenium-manager-linux-debug.tar selenium-manager
working-directory: rust
- name: "Build release binary (arm64)"
- name: "Build release binary"
run: |
cross build --target aarch64-unknown-linux-musl --profile dev
cd target/aarch64-unknown-linux-musl/debug
tar -cvf ../../../../selenium-manager-linux-arm64-debug.tar selenium-manager
cargo build --target ${{ matrix.target }} --profile dev
cd target/${{ matrix.target }}/debug
tar -cvf ../../../../${{ matrix.artifact }}.tar selenium-manager
working-directory: rust
env:
TARGET_CC: musl-gcc
- name: "Upload release binary"

Check failure

Code scanning / CodeQL

Cache Poisoning via execution of untrusted code High

Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
schedule
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
Potential cache poisoning in the context of the default branch due to privilege checkout of untrusted code from
inputs.branch
. (
workflow_dispatch
).
uses: actions/upload-artifact@v7
with:
name: selenium-manager-linux-debug
path: selenium-manager-linux-debug.tar
retention-days: 6
- name: "Upload release binary"
uses: actions/upload-artifact@v7
with:
name: selenium-manager-linux-arm64-debug
path: selenium-manager-linux-arm64-debug.tar
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}.tar
retention-days: 6

macos-stable:
Expand All @@ -192,9 +201,10 @@
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install ${{ env.RUST_VERSION }}
rustup default ${{ env.RUST_VERSION }}
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
rustc -vV
Expand Down Expand Up @@ -225,9 +235,10 @@
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install ${{ env.RUST_VERSION }}
rustup default ${{ env.RUST_VERSION }}
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
rustc -vV
Expand Down Expand Up @@ -258,9 +269,10 @@
uses: actions/checkout@v6
with:
ref: ${{ inputs.branch }}
- name: "Update Rust"
- name: "Install Rust toolchain"
run: |
rustup update
rustup toolchain install ${{ env.RUST_VERSION }}
rustup default ${{ env.RUST_VERSION }}
rustc -vV
- name: "Install SBOM tools"
run: cargo install --locked cargo-cyclonedx@0.5.7 cargo-about@0.6.6
Expand Down Expand Up @@ -297,12 +309,12 @@
- name: "Prepare and Commit"
run: |
linux_sha=$(shasum -a 256 artifacts/selenium-manager-linux/selenium-manager-linux | awk '{print $1}')
linux_arm64_sha=$(shasum -a 256 artifacts/selenium-manager-linux-arm64/selenium-manager-linux-arm64 | awk '{print $1}')
linux_aarch64_sha=$(shasum -a 256 artifacts/selenium-manager-linux-aarch64/selenium-manager-linux-aarch64 | 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}')
sbom_sha=$(shasum -a 256 artifacts/selenium-manager-sbom/selenium-manager.cdx.json | awk '{print $1}')
notice_sha=$(shasum -a 256 artifacts/selenium-manager-sbom/selenium-manager-THIRD-PARTY-NOTICES.txt | awk '{print $1}')
echo "{\"macos\": \"$macos_sha\", \"windows\": \"$windows_sha\", \"linux\": \"$linux_sha\", \"linux-arm64\": \"$linux_arm64_sha\", \"sbom\": \"$sbom_sha\", \"notice\": \"$notice_sha\"}" > latest.json
echo "{\"macos\": \"$macos_sha\", \"windows\": \"$windows_sha\", \"linux\": \"$linux_sha\", \"linux-aarch64\": \"$linux_aarch64_sha\", \"sbom\": \"$sbom_sha\", \"notice\": \"$notice_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
Expand All @@ -321,11 +333,11 @@
prerelease: false
files: |
artifacts/selenium-manager-linux/selenium-manager-linux
artifacts/selenium-manager-linux-arm64/selenium-manager-linux-arm64
artifacts/selenium-manager-linux-aarch64/selenium-manager-linux-aarch64
artifacts/selenium-manager-macos/selenium-manager-macos
artifacts/selenium-manager-windows/selenium-manager-windows.exe
artifacts/selenium-manager-linux-debug/selenium-manager-linux-debug.tar
artifacts/selenium-manager-linux-arm64-debug/selenium-manager-linux-arm64-debug.tar
artifacts/selenium-manager-linux-aarch64-debug/selenium-manager-linux-aarch64-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-sbom/selenium-manager.cdx.json
Expand Down
3 changes: 2 additions & 1 deletion MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,8 @@ use_repo(rules_rust, "rules_rust")
rust_toolchains = use_extension("@rules_rs//rs/toolchains:module_extension.bzl", "toolchains")
rust_toolchains.toolchain(
edition = "2024",
version = "1.89.0",
# Keep in sync with RUST_VERSION in .github/workflows/ci-rust.yml
version = "1.98.1",
)
use_repo(rust_toolchains, "default_rust_toolchains")

Expand Down
Loading