End to End Tests #2122
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: End to End Tests | |
| on: | |
| workflow_run: | |
| workflows: | |
| - Nightly Build Develop | |
| - Test, Build, and Release | |
| - Create and Test Beta Release Branch | |
| types: | |
| - completed | |
| workflow_call: | |
| inputs: | |
| apexE2ETests: | |
| description: 'Apex E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| coreE2ETests: | |
| description: 'Core E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| deployAndRetrieveE2ETests: | |
| description: 'Deploy and Retrieve E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| lspE2ETests: | |
| description: 'LSP E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| lwcE2ETests: | |
| description: 'LWC E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| soqlE2ETests: | |
| description: 'SOQL E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| vscodeVersion: | |
| description: 'VSCode Version' | |
| required: false | |
| default: 'latest' | |
| type: string | |
| runId: | |
| description: 'Run ID of the workflow run that created the vsixes' | |
| required: true | |
| type: string | |
| workflow_dispatch: | |
| inputs: | |
| apexE2ETests: | |
| description: 'Apex E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| coreE2ETests: | |
| description: 'Core E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| deployAndRetrieveE2ETests: | |
| description: 'Deploy and Retrieve E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| lspE2ETests: | |
| description: 'LSP E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| lwcE2ETests: | |
| description: 'LWC E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| soqlE2ETests: | |
| description: 'SOQL E2E Tests' | |
| required: false | |
| default: true | |
| type: boolean | |
| vscodeVersion: | |
| description: 'VSCode Version' | |
| required: false | |
| default: 'latest' | |
| type: string | |
| runId: | |
| description: 'Run ID of the workflow run that created the vsixes' | |
| required: true | |
| type: string | |
| jobs: | |
| calculate-min-vscode-version: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| min-vscode-version: ${{ steps.calc.outputs.version }} | |
| steps: | |
| - name: Calculate VSCode (latest - 2) version | |
| id: calc | |
| run: | | |
| # Fetch latest VSCode releases from GitHub API | |
| echo "Fetching VSCode releases..." | |
| RELEASES=$(curl -s https://api.github.com/repos/microsoft/vscode/releases) | |
| # Extract latest stable release (not prerelease) | |
| LATEST=$(echo "$RELEASES" | jq -r '[.[] | select(.prerelease == false and .draft == false)] | .[0].tag_name' | sed 's/^v//') | |
| echo "Latest VSCode version: $LATEST" | |
| # Parse major.minor from latest (e.g., "1.102.3" -> "1.102") | |
| MAJOR=$(echo $LATEST | cut -d. -f1) | |
| MINOR=$(echo $LATEST | cut -d. -f2) | |
| echo "Parsed: Major=$MAJOR, Minor=$MINOR" | |
| # Calculate target version: latest - 2 months | |
| TARGET_MINOR=$((MINOR - 2)) | |
| TARGET_VERSION="${MAJOR}.${TARGET_MINOR}.0" | |
| echo "Target VSCode version (latest - 2): $TARGET_VERSION" | |
| echo "version=$TARGET_VERSION" >> $GITHUB_OUTPUT | |
| Apex: | |
| if: ${{ inputs.apexE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/apexE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| Core: | |
| if: ${{ inputs.coreE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/coreE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| DeployAndRetrieve: | |
| if: ${{ inputs.deployAndRetrieveE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/deployRetrieveE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| LSP: | |
| if: ${{ inputs.lspE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/lspE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| LWC: | |
| if: ${{ inputs.lwcE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/lwcE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| SOQL: | |
| if: ${{ inputs.soqlE2ETests || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
| uses: ./.github/workflows/soqlE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ inputs.vscodeVersion || 'latest' }} | |
| runId: ${{ inputs.runId || github.event.workflow_run.id }} | |
| Apex_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/apexE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} | |
| Core_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/coreE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} | |
| DeployAndRetrieve_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/deployRetrieveE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} | |
| LSP_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/lspE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} | |
| LWC_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/lwcE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} | |
| SOQL_min_vscode_version: | |
| if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' }} | |
| needs: calculate-min-vscode-version | |
| uses: ./.github/workflows/soqlE2E.yml | |
| secrets: inherit | |
| with: | |
| vscodeVersion: ${{ needs.calculate-min-vscode-version.outputs.min-vscode-version }} | |
| runId: ${{ github.event.workflow_run.id }} |