diff --git a/.github/actions/get-latest-upstream/action.yml b/.github/actions/get-latest-upstream/action.yml index 35f7c5618..f376d60b7 100644 --- a/.github/actions/get-latest-upstream/action.yml +++ b/.github/actions/get-latest-upstream/action.yml @@ -6,6 +6,10 @@ inputs: required: false type: boolean default: false + version: + description: 'Specific Selenium version or release tag to use, e.g 4.42.1' + required: false + default: '' gh_cli_token: description: 'GitHub CLI authentication token' required: true @@ -22,19 +26,28 @@ runs: shell: bash env: AUTHORS: ${{ inputs.authors }} + REQUESTED_VERSION: ${{ inputs.version }} run: | sudo apt update sudo apt install jq AUTH_HEADER="Authorization: token ${{ inputs.gh_cli_token }}" - if [ "${{ inputs.release }}" = "true" ]; then + RELEASES=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/${AUTHORS}/selenium/releases) + if [ -n "${REQUESTED_VERSION}" ]; then + echo "Getting the requested Selenium release: ${REQUESTED_VERSION}" + RELEASE=$(echo "${RELEASES}" | jq -r --arg requested "${REQUESTED_VERSION}" '[.[]? | select(.tag_name == $requested or .tag_name == ("selenium-" + $requested) or ([.assets[]?.name] | index("selenium-server-" + $requested + ".jar")))] | .[0].tag_name') + if [ -z "${RELEASE}" ] || [ "${RELEASE}" = "null" ]; then + echo "Requested Selenium release not found: ${REQUESTED_VERSION}" + exit 1 + fi + elif [ "${{ inputs.release }}" = "true" ]; then echo "Getting the latest stable release." - RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name') + RELEASE=$(echo "${RELEASES}" | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name') else echo "Getting the latest Nightly release." - RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == true)] | .[0].tag_name' || echo "") + RELEASE=$(echo "${RELEASES}" | jq -r '[.[]? | select(.prerelease == true)] | .[0].tag_name' || echo "") if [ -z "${RELEASE}" ] || [ "${RELEASE}" = "null" ]; then echo "Nightly release not found, getting the latest stable release." - RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/${AUTHORS}/selenium/releases | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name') + RELEASE=$(echo "${RELEASES}" | jq -r '[.[]? | select(.prerelease == false)] | .[0].tag_name') fi fi jar_file=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/${AUTHORS}/selenium/releases/tags/${RELEASE} | jq -r '.assets[] | select(.name | endswith(".jar")) | .name' | tail -n 1) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9dd4b8936..7c34bbf4b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -8,6 +8,10 @@ on: required: true type: string default: 'true' + version: + description: 'Specific Selenium version or release tag to use, e.g 4.42.1' + required: false + default: '' release: description: 'Deploy a new release' required: false @@ -82,6 +86,7 @@ jobs: uses: ./.github/actions/get-latest-upstream with: release: ${{ github.event.inputs.stable || true }} + version: ${{ github.event.inputs.version || '' }} gh_cli_token: ${{ secrets.GITHUB_TOKEN }} authors: ${{ vars.AUTHORS || github.repository_owner }} - name: Sets build date diff --git a/.github/workflows/release-preparation.yml b/.github/workflows/release-preparation.yml index e2b552abf..b8bdb90ec 100644 --- a/.github/workflows/release-preparation.yml +++ b/.github/workflows/release-preparation.yml @@ -5,14 +5,14 @@ on: inputs: grid-version: required: true - default: '4.37.0' + default: '4.41.0' type: string workflow_dispatch: inputs: grid-version: required: true type: string - default: '4.37.0' + default: '4.41.0' description: Expected Grid version to update jobs: diff --git a/charts/selenium-grid/multiple-nodes-platform-version.yaml b/charts/selenium-grid/multiple-nodes-platform-version.yaml index 099c16cbc..e45d1c621 100644 --- a/charts/selenium-grid/multiple-nodes-platform-version.yaml +++ b/charts/selenium-grid/multiple-nodes-platform-version.yaml @@ -13,6 +13,16 @@ crossBrowsers: hpa: platformName: 'Linux' browserVersion: '' + - nameOverride: '{{ $.Release.Name }}-node-chrome-146' + imageTag: '146.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '146.0' + - nameOverride: '{{ $.Release.Name }}-node-chrome-145' + imageTag: '145.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '145.0' - nameOverride: '{{ $.Release.Name }}-node-chrome-144' imageTag: '144.0-20260222' hpa: @@ -259,6 +269,16 @@ crossBrowsers: hpa: platformName: 'Linux' browserVersion: '' + - nameOverride: '{{ $.Release.Name }}-node-firefox-149' + imageTag: '149.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '149.0' + - nameOverride: '{{ $.Release.Name }}-node-firefox-148' + imageTag: '148.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '148.0' - nameOverride: '{{ $.Release.Name }}-node-firefox-147' imageTag: '147.0-20260222' hpa: @@ -515,6 +535,16 @@ crossBrowsers: hpa: platformName: 'Linux' browserVersion: '' + - nameOverride: '{{ $.Release.Name }}-node-edge-146' + imageTag: '146.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '146.0' + - nameOverride: '{{ $.Release.Name }}-node-edge-145' + imageTag: '145.0-20260222' + hpa: + platformName: 'Linux' + browserVersion: '145.0' - nameOverride: '{{ $.Release.Name }}-node-edge-144' imageTag: '144.0-20260222' hpa: