Skip to content

Bump urllib3 from 2.7.0 to 2.8.0 in /doc/api/python #7051

Bump urllib3 from 2.7.0 to 2.8.0 in /doc/api/python

Bump urllib3 from 2.7.0 to 2.8.0 in /doc/api/python #7051

Workflow file for this run

name: Build and Test
on:
push:
branches: [main, release*]
pull_request:
branches: [main, release*]
types: [opened, ready_for_review, reopened, synchronize]
workflow_dispatch:
jobs:
changes:
if: github.event.pull_request.draft == false
runs-on: ubuntu-slim
permissions:
pull-requests: read
outputs:
source-code: ${{ steps.filter.outputs.source-code }}
markdown: ${{ steps.filter.outputs.markdown }}
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Check for changed file types
uses: dorny/paths-filter@7b450fff21473bca461d4b92ce414b9d0420d706 # version: v4.0.2
id: filter
with:
filters: |
source-code:
- '!**/*.md'
markdown:
- '**/*.md'
preflight-check:
needs: changes
if: ${{ needs.changes.outputs.source-code == 'true' }}
timeout-minutes: 20
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # version: v4.0.0
- name: Check format of all commit messages
run: ./internal/scripts/ci_test_commit_msg.sh
- name: Check license header
run: ./internal/scripts/ci_test_spdx_license_header.sh
- name: Install clang-tidy and clang-format
uses: ./.github/actions/install-iceoryx-deps-and-clang
- name: clang-format version
run: clang-format --version
- name: Run clang-format
run: git ls-files | grep -E "\.(c|cc|cpp|cxx|inl|h|hh|hpp|hxx)$" | xargs clang-format -i -style=file --Werror --dry-run
- name: Setup Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # version: v1
with:
toolchain: stable
components: rustfmt
- name: Lint Rust
run: |
just lint sdk rust
just lint integrations-zenoh rust
- name: Install rust-script
run: cargo install rust-script --locked
- name: Verify std feature propagation
run: |
just verify sdk std-propagation
just verify integrations-zenoh std-propagation
just verify integrations-ros2 std-propagation
nightly-check:
if: github.event.pull_request.draft == false
timeout-minutes: 20
runs-on: ubuntu-latest
steps:
- name: Check nightly action status
run: |
COLOR_OFF='\033[0m'
COLOR_RED='\033[1;31m'
COLOR_GREEN='\033[1;32m'
COLOR_YELLOW='\033[1;33m'
LAST_RUN_STATUS=$(curl -s "https://api.github.com/repos/eclipse-iceoryx/iceoryx2/actions/workflows/nightly.yml/runs" | jq -r '.workflow_runs[0].conclusion')
if [[ "${LAST_RUN_STATUS}" == "success" ]]; then
echo -e "Last nightly run status: ${COLOR_GREEN}${LAST_RUN_STATUS}${COLOR_OFF}"
else
echo -e "Last nightly run status: ${COLOR_RED}${LAST_RUN_STATUS}${COLOR_OFF}"
echo -e "${COLOR_RED}Error! The nightly workflow failed on the last run. Please check and fix the nightly workflow before merging this PR.${COLOR_OFF}"
echo -e "${COLOR_YELLOW}You can trigger the nightly workflow manually from 'https://github.com/eclipse-iceoryx/iceoryx2/actions/workflows/nightly.yml'.${COLOR_OFF}"
echo -e "${COLOR_YELLOW}Just look for the 'Run workflow' button. The branch where the workflow shall run can also be selected.${COLOR_OFF}"
exit 1
fi
linting-markdown:
needs: changes
if: ${{ needs.changes.outputs.markdown == 'true' }}
timeout-minutes: 10
runs-on: ubuntu-slim
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # version: v4.0.0
- name: Setup node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # version: v7.0.0
with:
node-version: "24"
- name: Install linters
run: npm install -g markdownlint-cli@0.47.0
- name: Lint markdown
run: |
just lint sdk markdown
just lint integrations-zenoh markdown
- name: Check config key documentation
run: ./internal/scripts/ci_check_description_vector_and_README.sh
static-code-analysis-cpp:
needs: changes
if: ${{ needs.changes.outputs.source-code == 'true' }}
timeout-minutes: 40
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: clang-tidy version
run: clang-tidy --version
- name: cmake version
run: cmake --version
- name: Run clang-tidy
run: |
git fetch origin main
internal/scripts/clang_tidy_scan.sh warning-as-error diff-to-main
# Static Code Analysis on other variants
static-code-analysis-rust:
needs: changes
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
uses: ./.github/workflows/reuse_static_code_analysis.yml
with:
os: ${{ matrix.os }}
# Build documentation and run code examples
rust-doc-check:
needs: [preflight-check, cargo-nextest]
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # version: v4.0.0
- name: Run code examples in documentation
run: |
just test sdk --doc --profile dev-fast-build
just test integrations-zenoh --doc --profile dev-fast-build
- name: Build documentation
run: |
just doc sdk rust
just doc integrations-zenoh rust
cargo-nextest:
needs: preflight-check
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest, ubuntu-24.04-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Build and cache cargo-nextest
uses: ./.github/actions/build-and-cache-rust-tool
with:
rust-toolchain: stable
check-and-install-cmd: cargo-nextest --version > /dev/null || cargo install cargo-nextest --locked
print-version-cmd: cargo-nextest --version
# increment cache-N-${{}} if a new nextest version is required
cache-key: cache-2-${{ matrix.os }}-cargo-nextest
artifact-bin-name: cargo-nextest
artifact-upload-name: ${{ matrix.os }}-cargo-nextest
python-bindings:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Prepare Windows
if: ${{ runner.os == 'Windows' }}
run: internal\scripts\ci_prepare_windows.ps1
- name: Prepare Linux
if: ${{ runner.os == 'Linux' }}
run: |
internal/scripts/ci_prepare_ubuntu.sh
uname -a
- name: Set Up Python & Install Poetry
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # version: v7.0.0
with:
python-version: "3.13"
- run: pip install poetry==2.2.1
- run: pip install poetry-plugin-shell==1.0.1
- name: Install Global Plugins # (needed for windows due to separate C:\ and D:\ drives)
if: runner.os == 'Windows'
run: poetry self add "poethepoet[poetry-plugin]>=0.35.0,<0.36.0"
- name: Install Python Dependencies
run: poetry --project iceoryx2-ffi/python install
- name: Build Python Bindings
run: poetry --project iceoryx2-ffi/python build-into-venv
- name: Test Python Bindings
run: poetry --project iceoryx2-ffi/python test
- name: Run Static Analysis
run: poetry --project iceoryx2-ffi/python static-analysis
end-to-end-tests:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-24.04]
toolchain: [stable]
timeout-minutes: 60
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@0d6a7d60b009d01c9e7523be22153ff8f19460d3 # version: v2.2.0
with:
cmake-version: "3.31.x"
- name: Use cmake
run: cmake --version
- name: Setup Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # version: v1
with:
toolchain: ${{ matrix.toolchain }}
targets: i686-unknown-linux-gnu, armv7r-none-eabihf
- name: Setup sccache
uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # version: v0.0.11
with:
version: "v0.16.0" # upgrade once sccache is fixed: https://github.com/eclipse-iceoryx/iceoryx2/issues/809#issuecomment-5264837759
- name: Set caching env vars on non-Windows
run: |
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Set Up Python & Install Poetry
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # version: v7.0.0
with:
python-version: "3.13"
- run: pip install poetry==2.2.1
- run: pip install poetry-plugin-shell==1.0.1
- name: Prepare Linux
run: |
internal/scripts/ci_prepare_ubuntu.sh
uname -a
- name: Run end-to-end tests
run: |
internal/scripts/ci_build_and_run_end_to_end_tests.sh
host-to-host-tests-tunnel:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
implementation: [zenoh]
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # version: v4.0.0
- name: Setup Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # version: v1
with:
toolchain: stable
- name: Setup sccache
uses: mozilla-actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # version: v0.0.11
with:
version: "v0.16.0" # upgrade once sccache is fixed: https://github.com/eclipse-iceoryx/iceoryx2/issues/809#issuecomment-5264837759
- name: Set caching env vars on non-Windows
run: |
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV
- name: Build link CLI
run: just build iceoryx2-cli --release
- name: Build tunnel CLI
run: just build iceoryx2-integrations-${{ matrix.implementation }}-link-tunnel-cli --release
- name: Build test binaries
run: just build iceoryx2-link-host-to-host-tests --release
- name: Build test docker image
run: |
docker build \
-f iceoryx2-link/host-to-host-tests/Dockerfile \
--build-arg ENTRYPOINT_BIN=target/release/iox2 \
--build-arg LINK_BIN=target/release/iox2-link \
--build-arg TUNNEL_BIN=integrations/${{ matrix.implementation }}/target/release/iox2-link-tunnel-${{ matrix.implementation }} \
--build-arg PINGER_BIN=target/release/link-host-to-host-pinger \
--build-arg PONGER_BIN=target/release/link-host-to-host-ponger \
--build-arg CONFIG_FILE=iceoryx2-link/host-to-host-tests/iceoryx2.toml \
-t host-to-host-tests:${{ github.sha }} .
- name: Run host-to-host tests
run: |
export IMAGE_TAG=${{ github.sha }}
export TUNNEL_IMPLEMENTATION=${{ matrix.implementation }}
export PAYLOAD_TYPE=primitive
docker compose -f iceoryx2-link/host-to-host-tests/docker-compose.yml up \
--abort-on-container-exit \
--exit-code-from pinger
export PAYLOAD_TYPE=complex
docker compose -f iceoryx2-link/host-to-host-tests/docker-compose.yml up \
--abort-on-container-exit \
--exit-code-from pinger
x86_32-debug:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest] # [windows-latest, ubuntu-latest, macos-latest]
toolchain: [stable] # [stable, 1.89.0, beta, nightly]
uses: ./.github/workflows/reuse_x86_32.yml
with:
os: ${{ matrix.os }}
toolchain: ${{ matrix.toolchain }}
profile: "dev-fast-build"
sdk-stable-debug:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, 1.89.0]
include:
- toolchain: stable
os: ubuntu-24.04-arm
uses: ./.github/workflows/reuse_stable.yml
with:
os: ${{ matrix.os }}
toolchain: ${{ matrix.toolchain }}
profile: "dev-fast-build"
workspace: sdk
integrations-zenoh-stable-debug:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, 1.89.0]
uses: ./.github/workflows/reuse_stable.yml
with:
os: ${{ matrix.os }}
toolchain: ${{ matrix.toolchain }}
profile: "dev-fast-build"
workspace: zenoh
integrations-ros2-stable-debug:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
fail-fast: false
matrix:
ros:
- { distro: jazzy, rmw: rmw_fastrtps_cpp }
- { distro: humble, rmw: rmw_cyclonedds_cpp }
uses: ./.github/workflows/reuse_ros2.yml
with:
ros-distro: ${{ matrix.ros.distro }}
rmw: ${{ matrix.ros.rmw }}
toolchain: stable
profile: "dev-fast-build"
sdk-stable-release:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
uses: ./.github/workflows/reuse_stable.yml
with:
os: ubuntu-latest
toolchain: stable
profile: "release-fast-build"
workspace: sdk
integrations-zenoh-stable-release:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' }}
uses: ./.github/workflows/reuse_stable.yml
with:
os: ubuntu-latest
toolchain: stable
profile: "release-fast-build"
workspace: zenoh
c-cxx-bindings-debug:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [stable, 1.89.0]
include:
- toolchain: stable
os: ubuntu-24.04-arm
uses: ./.github/workflows/reuse_c_cxx_bindings.yml
with:
os: ${{ matrix.os }}
toolchain: ${{ matrix.toolchain }}
profile: "dev-fast-build"
c-cxx-bindings-release:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
uses: ./.github/workflows/reuse_c_cxx_bindings.yml
with:
os: ubuntu-latest
toolchain: stable
profile: "release-fast-build"
unstable:
needs: [preflight-check, cargo-nextest]
if: ${{ needs.changes.outputs.source-code == 'true' && github.ref != 'refs/heads/main' }}
strategy:
matrix:
os: [ubuntu-latest]
toolchain: [beta, nightly]
uses: ./.github/workflows/reuse_unstable.yml
with:
os: ${{ matrix.os }}
toolchain: ${{ matrix.toolchain }}
profile: "dev-fast-build"
freebsd:
needs: [preflight-check]
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
freebsd_version: [ "15.0" ]
toolchain: [ "stable" ]
mode: ["dev"]
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Save disk space
uses: ./.github/actions/save-disk-space
with:
mode: "remove-unneeded-software-from-runner"
- name: Build and Test
uses: vmactions/freebsd-vm@77ed28d336d03fe19a3f4f7266c1d2c4714dd79d # version v1.5.2
with:
release: ${{ matrix.freebsd_version }}
mem: 16384
copyback: false
prepare: pkg install -y cmake curl gcc git llvm
run: |
git config --global --add safe.directory /home/runner/work/iceoryx2/iceoryx2
./internal/scripts/ci_prepare_freebsd.sh
bash internal/scripts/ci_build_and_test_freebsd.bash \
--toolchain ${{ matrix.toolchain }} \
--mode ${{ matrix.mode }} \
--build-args "-p iceoryx2" \
--test-args "-p iceoryx2 -p iceoryx2-bb-posix --no-fail-fast" \
--no-cmake
# NOTE: No Bazel build for zenoh workspace. This is on purpose.
Bazel:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
strategy:
matrix:
os: [ubuntu-24.04]
toolchain: [stable]
bazel-version: ["7.4.1", "8.5.1"]
include:
- bazel-version: "8.5.1"
feature-flatbuffers: "--//:feature_flatbuffers=on"
timeout-minutes: 60
runs-on: ${{ matrix.os }}
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Setup Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # version: v1
with:
toolchain: ${{ matrix.toolchain }}
- name: Prepare Linux
run: |
internal/scripts/ci_prepare_ubuntu.sh
uname -a
- name: Set up Bazel
uses: bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86 # version: 0.19.0
- name: Run Bazel build
env:
USE_BAZEL_VERSION: ${{matrix.bazel-version}}
run: bazel build //... --verbose_failures ${{ matrix.feature-flatbuffers }}
- name: Run Bazel test
env:
USE_BAZEL_VERSION: ${{matrix.bazel-version}}
run: bazel test //... --verbose_failures ${{ matrix.feature-flatbuffers }}
- name: Run Bazel query
env:
USE_BAZEL_VERSION: ${{matrix.bazel-version}}
run: bazel query 'deps(//examples/rust/publish_subscribe:publisher)' --output package
- name: Build example workspace
env:
USE_BAZEL_VERSION: ${{matrix.bazel-version}}
run: |
bazel clean
cd examples/bazel
bazel build //... --verbose_failures
- name: Check for changed files after CI run
if: ${{ matrix.bazel-version == '7.4.1' }}
uses: ./.github/actions/check-repo-changes
cxx-vocabulary-types:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
uses: ./.github/workflows/reuse_cxx_vocabulary_types.yml
no_std:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
uses: ./.github/workflows/reuse_no_std.yml
cargo-publish-dry-run:
needs: [preflight-check]
if: ${{ needs.changes.outputs.source-code == 'true' }}
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # version: v4.0.0
- name: Setup Rust
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # version: v1
with:
toolchain: stable
- name: Update versions
run: |
just prepare-release all versions --version 0.0.0
# NOTE: No publish dry run for zenoh workspace. This is on purpose.
# A dry run is not possible since the zenoh workspace depends
# on crates in the sdk workspace.
# TODO: Test publishing to local crate registry OR kellnr.
- name: Cargo Publish Dry-Run
run: |
just publish sdk --dry-run --allow-dirty
just publish integrations-zenoh --sanity-checks
grcov:
needs: [preflight-check]
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # version v7.0.1
- name: Build and cache grcov
uses: ./.github/actions/build-and-cache-rust-tool
with:
rust-toolchain: stable
rust-components: llvm-tools
check-and-install-cmd: grcov --version > /dev/null || cargo install grcov
print-version-cmd: grcov --version
cache-key: cache-2-${{ runner.os }}-grcov
artifact-bin-name: grcov
artifact-upload-name: ${{ runner.os }}-grcov
coverage:
needs: [grcov, cargo-nextest]
uses: ./.github/workflows/reuse_coverage.yml
# Have a sync point for all CI jobs that need to pass, will be enforced by Otterdog
mandatory-checks:
needs:
[
preflight-check,
rust-doc-check,
static-code-analysis-rust,
static-code-analysis-cpp,
sdk-stable-debug,
integrations-zenoh-stable-debug,
integrations-ros2-stable-debug,
freebsd,
Bazel,
x86_32-debug,
no_std,
c-cxx-bindings-debug,
c-cxx-bindings-release,
cxx-vocabulary-types,
python-bindings,
end-to-end-tests,
cargo-publish-dry-run,
]
runs-on: ubuntu-slim
steps:
- name: Mandatory Checks Sync
run: echo "Sync point for collecting mandatory checks that need to pass for Pull-Requests"