name: Tests on: push: branches: - "*" pull_request: branches: - main jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] rust: [ stable ] steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and export uses: docker/build-push-action@v6 with: context: . tags: rabbitmq_tls:latest outputs: type=docker,dest=/tmp/rabbitmq_tls.tar - name: Upload artifact uses: actions/upload-artifact@v4 with: name: rabbitmq_tls path: /tmp/rabbitmq_tls.tar - name: Download artifact uses: actions/download-artifact@v4 with: name: rabbitmq_tls path: /tmp - name: Load image run: | docker load --input /tmp/rabbitmq_tls.tar docker image ls -a docker run -d --rm --name rabbitmq-stream-client-test \ -p 5552:5552 -p 5672:5672 -p 5671:5671 -p 5551:5551 -p 15672:15672 \ -e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-rabbitmq_stream advertised_host localhost" \ rabbitmq_tls - name: wait for running run: | docker exec rabbitmq-stream-client-test /bin/bash -c 'ps -aux' docker exec rabbitmq-stream-client-test /bin/bash -c 'sleep 10' docker exec rabbitmq-stream-client-test /bin/bash -c 'rabbitmqctl status' docker exec rabbitmq-stream-client-test /bin/bash -c 'rabbitmqctl wait --pid 1 --timeout 70' - name: Install latest ${{ matrix.rust }} uses: actions-rs/toolchain@v1.0.7 with: toolchain: ${{ matrix.rust }} profile: minimal override: true components: rustfmt - name: List files run: ls -la - name: Run tests run: make test - name: Install cargo-llvm-cov uses: taiki-e/install-action@cargo-llvm-cov - name: Generate code coverage run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info --ignore-filename-regex benchmark - name: Codecov uses: codecov/codecov-action@v5.0.2 with: fail_ci_if_error: false name: codecov-umbrella # optional verbose: true # optional (default = false) env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}