openstack 0.6.0

OpenStack SDK for Rust
Documentation
name: Functional
on:
  - pull_request
jobs:
  functional:
    strategy:
      fail-fast: false
      matrix:
        name: ["master"]
        openstack_version: ["master"]
        ubuntu_version: ["22.04"]
        include:
          - name: "dolmatian"
            openstack_version: "stable/2024.2"
            ubuntu_version: "22.04"
          - name: "caracal"
            openstack_version: "stable/2024.1"
            ubuntu_version: "22.04"
          - name: "bobcat"
            openstack_version: "stable/2023.2"
            ubuntu_version: "22.04"
    runs-on: ubuntu-${{ matrix.ubuntu_version }}
    name: Functional tests on OpenStack ${{ matrix.name }}
    steps:
      - name: Checkout the project
        uses: actions/checkout@v2
      - name: Setup Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          rust-version: stable
      - name: Install ansible
        run: sudo apt install -y ansible
      - name: Deploy devstack
        uses: EmilienM/devstack-action@v0.6
        with:
          branch: ${{ matrix.openstack_version }}
          enabled_services: swift
          log_dir: /tmp/devstack-logs
      - name: Build the project
        run: cargo build --release --all-features --all-targets
      - name: Run tests
        run: |
          ansible-playbook -vvv -i localhost, --connection=local \
            -e project_dir="${GITHUB_WORKSPACE}" \
            ./playbooks/rust-openstack-acceptance/test.yaml
      - name: Generate logs
        run: ./tools/collect-logs.sh
        if: always()
      - name: Upload logs artifacts
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: functional-${{ matrix.name }}
          path: /tmp/devstack-logs/*