Skip to content

End to End Tests

End to End Tests #2143

Workflow file for this run

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 }}