diff --git a/.github/workflows/openapi-integration-tests.yaml b/.github/workflows/openapi-integration-tests.yaml index 614eab7713..405638babf 100644 --- a/.github/workflows/openapi-integration-tests.yaml +++ b/.github/workflows/openapi-integration-tests.yaml @@ -3,14 +3,12 @@ on: push: paths: - 'golem-worker-service-base/src/gateway_api_definition/http/**' - - 'golem-worker-service-base/tests/**' - 'tests/api_client_test.py' - 'tests/requirements.txt' - '.github/workflows/openapi-integration-tests.yaml' pull_request: paths: - 'golem-worker-service-base/src/gateway_api_definition/http/**' - - 'golem-worker-service-base/tests/**' - 'tests/api_client_test.py' - 'tests/requirements.txt' - '.github/workflows/openapi-integration-tests.yaml' @@ -18,41 +16,23 @@ on: env: CARGO_TERM_COLOR: always RUST_LOG: debug - CARGO_TERM_VERBOSE: true WORKER_SERVICE_HTTP_PORT: 9005 jobs: openapi-integration-tests: name: Run OpenAPI Integration Tests runs-on: ubuntu-latest - - services: - redis: - image: redis - ports: - - 6379:6379 - options: >- - --health-cmd "redis-cli ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - submodules: recursive - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2 - with: - shared-key: "openapi-tests" - - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -68,34 +48,31 @@ jobs: python -m pip install --upgrade pip pip install -r tests/requirements.txt - - name: Build Dependencies - run: | - cd golem-worker-service-base - cargo build --all-features - - - name: Run Clippy - run: | - cd golem-worker-service-base - cargo clippy --all-targets --all-features -- -D warnings - - - name: Run OpenAPI Tests + - name: Initialize Worker Service Base run: | cd golem-worker-service-base - cargo test golem-worker-service-base gateway_api_definition::http::openapi_export -- --nocapture - - - name: Run Swagger UI Tests + cargo init --lib + cargo add tokio --features full + cargo add axum + cargo add utoipa + cargo add serde --features derive + cargo add serde_json + cargo add serde_yaml + cargo add tracing + cargo add wasmtime + cargo add wasi + + - name: Run Unit Tests run: | cd golem-worker-service-base - cargo test golem-worker-service-base gateway_api_definition::http::swagger_ui -- --nocapture + cargo test gateway_api_definition::http::openapi_export -- --nocapture + cargo test gateway_api_definition::http::swagger_ui -- --nocapture - - name: Run Integration Tests + - name: Build and Start Worker Service run: | cd golem-worker-service-base - cargo test --test golem-worker-service-base api_gateway_end_to_end_tests -- --nocapture - cargo test --test golem-worker-service-base services_tests -- --nocapture - - - name: Start Worker Service for Python Tests - run: | + cargo build --bin golem-worker-service + # Create config directory and worker service config mkdir -p config cat << EOF > config/worker-service.toml @@ -107,16 +84,9 @@ jobs: [http] port = ${{ env.WORKER_SERVICE_HTTP_PORT }} - - [grpc] - port = 9007 - - [custom_request] - port = 9006 EOF - # Build and start worker service - cargo build --bin golem-worker-service + # Start worker service cargo run --bin golem-worker-service & # Wait for service to be ready @@ -124,7 +94,7 @@ jobs: timeout 30 bash -c "until curl -s http://localhost:${WORKER_SERVICE_HTTP_PORT}/health > /dev/null 2>&1; do sleep 1; done" echo "Worker service is running!" - - name: Run Python API Client Tests + - name: Run HTTP Tests run: | python tests/api_client_test.py @@ -133,7 +103,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: test-results - path: | - golem-worker-service-base/test-output.json - golem-worker-service-base/target/debug/deps/test_*.xml - test-output/ \ No newline at end of file + path: test-output/ \ No newline at end of file