name: E2E Tests on: push: branches: [ "*" ] workflow_dispatch: jobs: selenium-tests: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: '8.0.x' - name: Install Chrome and ChromeDriver run: | sudo apt-get update sudo apt-get install -y wget gnupg unzip wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list sudo apt-get update sudo apt-get install -y google-chrome-stable # Install matching ChromeDriver CHROME_VERSION=$(google-chrome --version | grep -oE "[0-9]+\\.[0-9]+\\.[0-9]+") CHROMEDRIVER_VERSION=$(curl -s "https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_$CHROME_VERSION") if [ -z "$CHROMEDRIVER_VERSION" ]; then CHROMEDRIVER_VERSION=$(curl -s "https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE") fi wget -O /tmp/chromedriver.zip "https://storage.googleapis.com/chrome-for-testing-public/$CHROMEDRIVER_VERSION/linux64/chromedriver-linux64.zip" unzip /tmp/chromedriver.zip -d /tmp/ sudo mv /tmp/chromedriver-linux64/chromedriver /usr/local/bin/chromedriver sudo chmod +x /usr/local/bin/chromedriver google-chrome --version chromedriver --version - name: Verify Chrome install run: | chromium-browser --version chromedriver --version - name: Restore dependencies run: dotnet restore src/ - name: Build solution run: dotnet build src/ --configuration Release --no-restore - name: Run Selenium tests env: DOTNET_ENVIRONMENT: Development run: dotnet test src - name: Upload test results uses: actions/upload-artifact@v4 with: name: selenium-test-results path: "**/TestResults/*.trx"