From d2c6d0fd11e0b465fbc4cc683bc80da294c07eba Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Sun, 21 Apr 2024 22:45:06 +0000 Subject: [PATCH 1/6] Conditional for dotnet --- .github/workflows/dotnet-examples.yml | 44 ++++++++++++++++++- .../dotnet/SeleniumDocs/SeleniumDocs.csproj | 8 ++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-examples.yml b/.github/workflows/dotnet-examples.yml index c1d20b8b1737..6ea3723c0e4a 100644 --- a/.github/workflows/dotnet-examples.yml +++ b/.github/workflows/dotnet-examples.yml @@ -28,6 +28,48 @@ jobs: os: [ ubuntu-latest, windows-latest, macos-latest ] runs-on: ${{ matrix.os }} steps: + - name: Checkout GitHub repo + uses: actions/checkout@v4 + - name: Remove driver directories Windows + if: matrix.os == 'windows-latest' + run: | + rm "$env:ChromeWebDriver" -r -v + rm "$env:EdgeWebDriver" -r -v + rm "$env:GeckoWebDriver" -r -v + - name: Remove driver directories Non-Windows + if: matrix.os != 'windows-latest' + run: | + sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER + - name: Start Xvfb + if: matrix.os == 'ubuntu-latest' + run: Xvfb :99 & + - name: Set up .Net + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.x + - name: Set up Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 11 + - name: Run tests + uses: nick-invision/retry@v3.0.0 + with: + timeout_minutes: 20 + max_attempts: 3 + command: | + cd examples/dotnet/SeleniumDocs + dotnet test + + test_examples_nightly: + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + runs-on: ${{ matrix.os }} + env: + SE_NIGHTLY: true + steps: - name: Checkout GitHub repo uses: actions/checkout@v4 - name: Remove driver directories Windows @@ -56,7 +98,7 @@ jobs: distribution: 'temurin' java-version: 11 - name: Run tests - uses: nick-invision/retry@v3.0.0 + uses: nick-fields/retry@v3.0.0 with: timeout_minutes: 20 max_attempts: 3 diff --git a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj index b4e9e9e012c8..133fd1b754fd 100644 --- a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj +++ b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj @@ -10,10 +10,18 @@ + + + + + + + + From 2bd6a3c1d457f18642960d2fa3c802ba5cf887c7 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 22 Apr 2024 07:48:13 +0000 Subject: [PATCH 2/6] Refactoring workflow --- .github/workflows/dotnet-examples.yml | 47 +++---------------- .../dotnet/SeleniumDocs/SeleniumDocs.csproj | 4 +- 2 files changed, 9 insertions(+), 42 deletions(-) diff --git a/.github/workflows/dotnet-examples.yml b/.github/workflows/dotnet-examples.yml index 6ea3723c0e4a..c257d954ea81 100644 --- a/.github/workflows/dotnet-examples.yml +++ b/.github/workflows/dotnet-examples.yml @@ -26,6 +26,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] + release: [ stable, nightly ] runs-on: ${{ matrix.os }} steps: - name: Checkout GitHub repo @@ -43,49 +44,13 @@ jobs: - name: Start Xvfb if: matrix.os == 'ubuntu-latest' run: Xvfb :99 & - - name: Set up .Net + - name: Set up .Net Stable + if: matrix.release == 'stable' uses: actions/setup-dotnet@v4 with: dotnet-version: 6.x - - name: Set up Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 11 - - name: Run tests - uses: nick-invision/retry@v3.0.0 - with: - timeout_minutes: 20 - max_attempts: 3 - command: | - cd examples/dotnet/SeleniumDocs - dotnet test - - test_examples_nightly: - strategy: - fail-fast: false - matrix: - os: [ ubuntu-latest, windows-latest, macos-latest ] - runs-on: ${{ matrix.os }} - env: - SE_NIGHTLY: true - steps: - - name: Checkout GitHub repo - uses: actions/checkout@v4 - - name: Remove driver directories Windows - if: matrix.os == 'windows-latest' - run: | - rm "$env:ChromeWebDriver" -r -v - rm "$env:EdgeWebDriver" -r -v - rm "$env:GeckoWebDriver" -r -v - - name: Remove driver directories Non-Windows - if: matrix.os != 'windows-latest' - run: | - sudo rm -rf $CHROMEWEBDRIVER $EDGEWEBDRIVER $GECKOWEBDRIVER - - name: Start Xvfb - if: matrix.os == 'ubuntu-latest' - run: Xvfb :99 & - - name: Set up .Net + - name: Set up .Net Nightly + if: matrix.release == 'nightly' uses: actions/setup-dotnet@v4 with: dotnet-version: 6.x @@ -105,3 +70,5 @@ jobs: command: | cd examples/dotnet/SeleniumDocs dotnet test + env: + SE_RELEASE: ${{ matrix.release }} diff --git a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj index 133fd1b754fd..39d4594238fb 100644 --- a/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj +++ b/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj @@ -12,12 +12,12 @@ - + - + From 996c3b81cb3c35f165a313cb404c679ec089d70b Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 22 Apr 2024 08:02:19 +0000 Subject: [PATCH 3/6] Using nightly for JS examples --- .github/workflows/js-examples.yml | 20 ++++++++++++++++++++ examples/javascript/package.nightly.json | 16 ++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 examples/javascript/package.nightly.json diff --git a/.github/workflows/js-examples.yml b/.github/workflows/js-examples.yml index 50948e709a61..9203c99c0c19 100644 --- a/.github/workflows/js-examples.yml +++ b/.github/workflows/js-examples.yml @@ -26,6 +26,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] + release: [ stable, nightly ] runs-on: ${{ matrix.os }} steps: - name: Checkout GitHub repo @@ -77,6 +78,25 @@ jobs: - name: Start Xvfb if: matrix.os == 'ubuntu-latest' run: Xvfb :99 & + - name: Setup Node Stable + if: matrix.release == 'stable' + uses: actions/setup-node@v4 + with: + node-version: '18.x' + - name: Setup Node Nightly + if: matrix.release == 'nightly' + uses: actions/setup-node@v4 + with: + node-version: '18.x' + registry-url: 'https://npm.pkg.github.com' + - name: Use Nightly package.json in Ubuntu/macOS + if: matrix.release == 'nightly' && matrix.os != 'windows-latest' + working-directory: ./examples/javascript + run: mv package.nightly.json package.json + - name: Use Nightly package.json in Windows + if: matrix.release == 'nightly' && matrix.os == 'windows-latest' + working-directory: ./examples/javascript + run: Move-Item -Path package.nightly.json -Destination package.json - name: Install Requirements working-directory: ./examples/javascript run: npm install diff --git a/examples/javascript/package.nightly.json b/examples/javascript/package.nightly.json new file mode 100644 index 000000000000..8e450f2648af --- /dev/null +++ b/examples/javascript/package.nightly.json @@ -0,0 +1,16 @@ +{ + "name": "javascript-examples", + "version": "1.0.0", + "scripts": { + "test": "npx mocha test/**/*.spec.js --timeout 60000" + }, + "author": "The Selenium project", + "license": "Apache-2.0", + "dependencies": { + "assert": "2.1.0", + "@seleniumhq/selenium-webdriver": "4.20.0-nightly202404220008" + }, + "devDependencies": { + "mocha": "10.4.0" + } +} From 3df7f3139b5d35fe64ffd81541bd93b9775031c3 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 22 Apr 2024 08:09:11 +0000 Subject: [PATCH 4/6] Authenticating --- .github/workflows/js-examples.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/js-examples.yml b/.github/workflows/js-examples.yml index 9203c99c0c19..d7a3ef2bf282 100644 --- a/.github/workflows/js-examples.yml +++ b/.github/workflows/js-examples.yml @@ -100,6 +100,8 @@ jobs: - name: Install Requirements working-directory: ./examples/javascript run: npm install + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Run tests uses: nick-invision/retry@v3.0.0 with: From 96df4a36746629ba572d5e5a8a2813140d2a1825 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 22 Apr 2024 08:12:35 +0000 Subject: [PATCH 5/6] Forcing overwrite --- .github/workflows/js-examples.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/js-examples.yml b/.github/workflows/js-examples.yml index d7a3ef2bf282..d72bc473d7c3 100644 --- a/.github/workflows/js-examples.yml +++ b/.github/workflows/js-examples.yml @@ -96,7 +96,7 @@ jobs: - name: Use Nightly package.json in Windows if: matrix.release == 'nightly' && matrix.os == 'windows-latest' working-directory: ./examples/javascript - run: Move-Item -Path package.nightly.json -Destination package.json + run: Move-Item -Path package.nightly.json -Destination package.json -Force - name: Install Requirements working-directory: ./examples/javascript run: npm install From 2b8535f0a4a96c8129cf05b94766144d91f32f13 Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 22 Apr 2024 08:19:06 +0000 Subject: [PATCH 6/6] Using alias for nightly package. --- examples/javascript/package.nightly.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/javascript/package.nightly.json b/examples/javascript/package.nightly.json index 8e450f2648af..3277513ed667 100644 --- a/examples/javascript/package.nightly.json +++ b/examples/javascript/package.nightly.json @@ -8,7 +8,7 @@ "license": "Apache-2.0", "dependencies": { "assert": "2.1.0", - "@seleniumhq/selenium-webdriver": "4.20.0-nightly202404220008" + "selenium-webdriver": "npm:@seleniumhq/selenium-webdriver@4.20.0-nightly202404220008" }, "devDependencies": { "mocha": "10.4.0"