continue running workflow even if tests fail #38
This file contains 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: Provision Windows VM using reusable workflow | |
on: [push] | |
jobs: | |
start-ec2-instance: | |
uses: ./.github/workflows/provision-runner.yml | |
with: | |
ec2-image-id: ami-0b7d4973163feb944 | |
ec2-instance-type: t2.micro | |
security-group-id: sg-0a3e6b53e86d0e69d | |
subnet-id: subnet-06113672589e7e836 | |
ec2-os-type: windows | |
secrets: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
github-token: ${{ secrets.GH_RUNNER_API_TOKEN }} | |
run-tests: | |
needs: start-ec2-instance | |
runs-on: ${{ needs.start-ec2-instance.outputs.instance_label }} | |
steps: | |
- name: Install Chocolatey | |
run: | | |
Set-ExecutionPolicy Bypass -Scope Process -Force; | |
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; | |
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) | |
shell: powershell | |
- name: Install VSCode | |
run: choco install vscode -y | |
shell: powershell | |
- name: Install Node.js | |
run: choco install nodejs -y | |
shell: powershell | |
- name: Define Node.js and VSCode Paths | |
shell: powershell | |
run: | | |
$nodePath = 'C:\Program Files\nodejs' | |
$vscodePath = 'C:\Program Files\Microsoft VS Code\bin' | |
# Update PATH so that Node.js, npm, npx, and VSCode can be called directly | |
$newPath = "$env:PATH;$nodePath;$vscodePath" | |
[System.Environment]::SetEnvironmentVariable('PATH', $newPath, [System.EnvironmentVariableTarget]::Process) | |
# Persist the updated PATH to make it available for subsequent steps | |
"PATH=$newPath" | Out-File -FilePath $env:GITHUB_ENV -Append | |
- name: Verify VSCode and Node.js Installation | |
shell: powershell | |
run: | | |
code --version | |
node --version | |
- name: Clone kai-ci repo | |
shell: powershell | |
run: | | |
mkdir ./kai-ci-temp | |
cd ./kai-ci-temp | |
git clone https://github.com/konveyor/kai-ci.git | |
- name: Install npm dependencies | |
shell: powershell | |
working-directory: ./kai-ci-temp/kai-ci | |
run: | | |
npm install . | |
- name: Run tests | |
shell: powershell | |
working-directory: ./kai-ci-temp/kai-ci | |
run: | | |
try { | |
npx playwright test | |
} catch { | |
Write-Host "Playwright tests failed, but continuing workflow." # to continue running even if the tests run fail | |
} | |
- name: Upload screenshots | |
uses: actions/upload-artifact@v4 | |
with: | |
name: vscode-screenshots | |
path: | | |
vscode-initialized-screenshot.png | |
kai-installed-screenshot.png | |
if: always() | |
- uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: playwright-report | |
path: playwright-report/ | |
retention-days: 30 | |
stop-ec2-instance: | |
needs: [ start-ec2-instance,run-tests ] | |
if: always() | |
uses: ./.github/workflows/remove-runner.yml | |
with: | |
ec2-instance-id: ${{ needs.start-ec2-instance.outputs.ec2-instance-id }} | |
ec2-runner-label: ${{ needs.start-ec2-instance.outputs.instance_label }} | |
secrets: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
github-token: ${{ secrets.GH_RUNNER_API_TOKEN }} |