Skip to content

feat: allow to emit end exchange event from client for stopping response #1932

feat: allow to emit end exchange event from client for stopping response

feat: allow to emit end exchange event from client for stopping response #1932

Workflow file for this run

name: PR Checks
on:
pull_request:
branches:
- main
types:
- opened # When PR is first created
- synchronize # When new commits are pushed to PR branch
- reopened # When a closed PR is reopened
workflow_dispatch: # Allows manual trigger from GitHub UI
permissions:
contents: read
pull-requests: write
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Typecheck
run: npm run typecheck
- name: Run SDK Tests
run: npm run test:coverage -- --run
- name: Upload unit test coverage
uses: actions/upload-artifact@v4
if: github.base_ref == 'main'
with:
name: unit-coverage
path: coverage/lcov.info
- name: Build Project
run: npm run build
- name: Set Integration Test Configuration
if: github.base_ref == 'main'
id: config
run: |
# Configuration for main branch
echo "env_name=development" >> $GITHUB_OUTPUT
echo "base_url=${{ secrets.UIPATH_BASE_URL_DEV || secrets.UIPATH_BASE_URL }}" >> $GITHUB_OUTPUT
echo "org_name=${{ secrets.UIPATH_ORG_NAME_DEV || secrets.UIPATH_ORG_NAME }}" >> $GITHUB_OUTPUT
echo "tenant_name=${{ secrets.UIPATH_TENANT_NAME_DEV || secrets.UIPATH_TENANT_NAME }}" >> $GITHUB_OUTPUT
echo "secret=${{ secrets.UIPATH_SECRET_DEV || secrets.UIPATH_SECRET }}" >> $GITHUB_OUTPUT
echo "integration_test_folder_id=${{ secrets.UIPATH_INTEGRATION_TEST_FOLDER_DEV || secrets.UIPATH_INTEGRATION_TEST_FOLDER }}" >> $GITHUB_OUTPUT
echo "integration_test_folder_key=${{ secrets.UIPATH_INTEGRATION_TEST_FOLDER_KEY_DEV || secrets.UIPATH_INTEGRATION_TEST_FOLDER_KEY }}" >> $GITHUB_OUTPUT
echo "integration_test_folder_path=${{ secrets.UIPATH_INTEGRATION_TEST_FOLDER_PATH_DEV || secrets.UIPATH_INTEGRATION_TEST_FOLDER_PATH }}" >> $GITHUB_OUTPUT
echo "orchestrator_test_process_key=${{ secrets.UIPATH_INTEGRATION_TEST_PROCESS_KEY_DEV || secrets.UIPATH_INTEGRATION_TEST_PROCESS_KEY }}" >> $GITHUB_OUTPUT
echo "data_fabric_test_entity_id=${{ secrets.UIPATH_DATA_FABRIC_TEST_ENTITY_ID_DEV || secrets.UIPATH_DATA_FABRIC_TEST_ENTITY_ID }}" >> $GITHUB_OUTPUT
echo "data_fabric_test_choiceset_id=${{ secrets.UIPATH_DATA_FABRIC_TEST_CHOICESET_ID_DEV || secrets.UIPATH_DATA_FABRIC_TEST_CHOICESET_ID }}" >> $GITHUB_OUTPUT
echo "data_fabric_test_attachment_field=${{ secrets.UIPATH_DATA_FABRIC_TEST_ATTACHMENT_FIELD_DEV || secrets.UIPATH_DATA_FABRIC_TEST_ATTACHMENT_FIELD }}" >> $GITHUB_OUTPUT
echo "orchestrator_attachment_id=${{ secrets.UIPATH_ORCHESTRATOR_ATTACHMENT_ID_DEV || secrets.UIPATH_ORCHESTRATOR_ATTACHMENT_ID }}" >> $GITHUB_OUTPUT
echo "jobs_test_folder_id=${{ secrets.UIPATH_JOBS_TEST_FOLDER_ID_DEV || secrets.UIPATH_JOBS_TEST_FOLDER_ID }}" >> $GITHUB_OUTPUT
echo "traces_test_trace_id=${{ secrets.UIPATH_TRACES_TEST_TRACE_ID_DEV || secrets.UIPATH_TRACES_TEST_TRACE_ID }}" >> $GITHUB_OUTPUT
- name: Create Integration Test Configuration
if: github.base_ref == 'main'
run: |
cat > tests/.env.integration << EOF
# Auto-generated configuration for development environment
# Target branch: ${{ github.base_ref }}
UIPATH_BASE_URL=${{ steps.config.outputs.base_url }}
UIPATH_ORG_NAME=${{ steps.config.outputs.org_name }}
UIPATH_TENANT_NAME=${{ steps.config.outputs.tenant_name }}
UIPATH_SECRET=${{ steps.config.outputs.secret }}
INTEGRATION_TEST_TIMEOUT=30000
INTEGRATION_TEST_SKIP_CLEANUP=false
INTEGRATION_TEST_FOLDER_ID=${{ steps.config.outputs.integration_test_folder_id }}
INTEGRATION_TEST_FOLDER_KEY=${{ steps.config.outputs.integration_test_folder_key }}
INTEGRATION_TEST_FOLDER_PATH=${{ steps.config.outputs.integration_test_folder_path }}
DATA_FABRIC_TEST_ENTITY_ID=${{ steps.config.outputs.data_fabric_test_entity_id }}
DATA_FABRIC_TEST_CHOICESET_ID=${{ steps.config.outputs.data_fabric_test_choiceset_id }}
DATA_FABRIC_TEST_ATTACHMENT_FIELD=${{ steps.config.outputs.data_fabric_test_attachment_field }}
ORCHESTRATOR_TEST_PROCESS_KEY=${{ steps.config.outputs.orchestrator_test_process_key }}
ORCHESTRATOR_ATTACHMENT_ID=${{ steps.config.outputs.orchestrator_attachment_id }}
JOBS_TEST_FOLDER_ID=${{ steps.config.outputs.jobs_test_folder_id }}
TRACES_TEST_TRACE_ID=${{ steps.config.outputs.traces_test_trace_id }}
EOF
- name: Run Integration Tests
if: github.base_ref == 'main'
run: npm run test:integration:coverage -- --run
- name: Upload integration test coverage
uses: actions/upload-artifact@v4
if: github.base_ref == 'main'
with:
name: integration-coverage
path: coverage-integration/lcov.info
- name: SonarCloud Scan
if: github.base_ref == 'main' && github.event.pull_request.head.repo.fork == false
uses: SonarSource/sonarqube-scan-action@0303d6b62e310685c0e34d0b9cde218036885c4d # v5.0.0
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Generate Summary
if: success()
run: |
echo "## ✅ PR Checks Passed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Target Branch:** \`${{ github.base_ref }}\`" >> $GITHUB_STEP_SUMMARY
if [ "${{ github.base_ref }}" == "main" ]; then
echo "**Environment:** \`development\`" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Completed Checks:" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Dependencies installed successfully" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Typecheck passed" >> $GITHUB_STEP_SUMMARY
echo "- ✅ SDK tests passed" >> $GITHUB_STEP_SUMMARY
echo "- ✅ Build completed successfully" >> $GITHUB_STEP_SUMMARY
if [ "${{ github.base_ref }}" == "main" ]; then
echo "- ✅ All integration tests passed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "Your pull request is ready for review!" >> $GITHUB_STEP_SUMMARY
- name: Generate Failure Summary
if: failure()
run: |
echo "## ❌ PR Checks Failed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Target Branch:** \`${{ github.base_ref }}\`" >> $GITHUB_STEP_SUMMARY
if [ "${{ github.base_ref }}" == "main" ]; then
echo "**Environment:** \`development\`" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "Please review the logs above to identify and fix the issues." >> $GITHUB_STEP_SUMMARY
test-packages:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
fail-fast: false
matrix:
package:
- telemetry
defaults:
run:
working-directory: packages/${{ matrix.package }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: packages/${{ matrix.package }}/package-lock.json
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test