chore: release #3127
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| paths: | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - '.github/workflows/ci.yml' | |
| - 'openstack_cli/**' | |
| - 'openstack_sdk/**' | |
| - 'openstack_tui/**' | |
| - 'openstack_types/**' | |
| - 'fuzz/**' | |
| env: | |
| CARGO_TERM_COLOR: always | |
| NEXTEST_RETRIES: 3 | |
| jobs: | |
| test: | |
| strategy: | |
| matrix: | |
| include: | |
| - target: x86_64-unknown-linux-gnu | |
| os: ubuntu-latest | |
| test_args: "" | |
| rust_ver: 1.88 | |
| # - target: x86_64-unknown-linux-musl | |
| # os: ubuntu-latest | |
| # - target: x86_64-apple-darwin | |
| # os: macos-latest | |
| # - target: x86_64-pc-windows-msvc | |
| # os: windows-latest | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Harden Runner | |
| uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 # stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| toolchain: ${{ matrix.rust_ver }} | |
| - name: Install cargo-nextest | |
| uses: taiki-e/install-action@491d37bbaa844af8400b3595395e1bca723e6141 # v2.55.1 | |
| with: | |
| tool: cargo-nextest | |
| - name: Rust Cache | |
| uses: swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 | |
| - name: Run tests | |
| run: cargo nextest run ${{ matrix.test_args }} | |
| - name: Run Doc tests | |
| run: cargo test --doc | |
| fuzz: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Harden Runner | |
| uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 | |
| with: | |
| egress-policy: audit | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 # stable | |
| with: | |
| toolchain: nightly | |
| - name: Rust Cache | |
| uses: swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 | |
| - name: Install cargo-fuzz | |
| run: | | |
| cargo install cargo-fuzz | |
| - name: Run tests | |
| run: cargo +nightly fuzz run fuzz_openstack_sdk_config --features=fuzzing -- -max_total_time=60 | |
| mock: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 # stable | |
| with: | |
| toolchain: stable | |
| - name: Rust Cache | |
| uses: swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 | |
| - name: Start prism mock server - BlockStorage | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4010:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/block-storage/v3.yaml -d | |
| - name: Start prism mock server - Compute | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4011:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/compute/v2.yaml -d | |
| - name: Start prism mock server - DNS | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4012:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/dns/v2.yaml -d | |
| - name: Start prism mock server - Identity | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4013:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/identity/v3.yaml -d | |
| - name: Start prism mock server - Image | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4014:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/image/v2.yaml -d | |
| - name: Start prism mock server - Load Balancer | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4015:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/load-balancer/v2.yaml -d | |
| - name: Start prism mock server - Network | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4016:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/network/v2.yaml -d | |
| - name: Start prism mock server - Object Storage | |
| run: | | |
| docker run --init --rm -d -v "$GITHUB_WORKSPACE/openstack_types/data":"/data" -p 4017:4010 stoplight/prism:4 mock -h 0.0.0.0 /data/object-store/v1.yaml -d | |
| - name: Run tests | |
| env: | |
| OPENSTACK_BLOCK_STORAGE_ENDPOINT: http://localhost:4010/v3 | |
| OPENSTACK_COMPUTE_ENDPOINT: http://localhost:4011/v2.1 | |
| OPENSTACK_DNS_ENDPOINT: http://localhost:4012/v2 | |
| OPENSTACK_IDENTITY_ENDPOINT: http://localhost:4013/v3 | |
| OPENSTACK_IMAGE_ENDPOINT: http://localhost:4014/v2 | |
| OPENSTACK_LOAD_BALANCER_ENDPOINT: http://localhost:4015/v2 | |
| OPENSTACK_NETWORK_ENDPOINT: http://localhost:4016/v2.0 | |
| OPENSTACK_OBJECT_STORE_ENDPOINT: http://localhost:4017/v1 | |
| run: cargo test -p openstack_types --test mocked |