From 666d662f274e3713e7cf9794190dbbd1eadfb95f Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Tue, 14 Oct 2025 10:57:22 +0200 Subject: [PATCH 1/6] feat: Automatic browsers and drivers download Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 188 ++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 .github/workflows/download-browsers.yml diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml new file mode 100644 index 0000000..10e5c61 --- /dev/null +++ b/.github/workflows/download-browsers.yml @@ -0,0 +1,188 @@ +name: Download browsers packages + +on: + workflow_dispatch: + inputs: + browser: + description: "Select browser or driver" + required: true + type: choice + options: + - firefox + - chrome + - edge + - chromium + version: + description: "Optional: specify version (leave empty for latest)" + required: false + default: "" + schedule: + - cron: "0 10 * * MON" #UTC time + +permissions: + contents: write + +jobs: + generate-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.generate.outputs.matrix }} + steps: + - name: Generate matrix JSON + id: generate + run: | + if [ '${{ github.event_name }}' == 'schedule' ]; then + MATRIX_JSON=$(jq -n \ + '[ + {"browser": "firefox", "version": ""}, + {"browser": "chrome", "version": ""}, + {"browser": "edge", "version": ""}, + {"browser": "chromium", "version": ""} + ]' + ) + else + MATRIX_JSON=$(jq -n \ + '[ + {"browser": "${{ inputs.browser }}", "version": "${{ inputs.version }}"} + ]' + ) + fi + + # Use a heredoc-style output block (avoids parsing errors) + echo "matrix<> $GITHUB_OUTPUT + echo "$MATRIX_JSON" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + download: + needs: generate-matrix + runs-on: ubuntu-latest + strategy: + matrix: + include: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} + steps: + - name: Check version + id: need_latest + run: | + echo "Running for: ${{ matrix.browser }}" + echo "Checking if version has been set" + if [ -z ${{ matrix.version }} ]; then + echo "Version is empty. Get latest version" + echo "get_latest=true" >> $GITHUB_OUTPUT + else + echo "Version: ${{ matrix.version }}" + echo "get_latest=false" >> $GITHUB_OUTPUT + echo "VERSION=${{ matrix.version }}" >> $GITHUB_ENV + fi + + - name: Set up Python + if: steps.need_latest.outputs.get_latest == 'true' + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install dependencies + if: steps.need_latest.outputs.get_latest == 'true' + run: pip install requests + + - name: Get latest versions + if: steps.need_latest.outputs.get_latest == 'true' + id: latest_version + run: | + import requests, os + browser = os.environ.get("BROWSER") + env_file = os.getenv('GITHUB_ENV') + + match browser: + case "chrome": + url = "https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions" + version = requests.get(url).json()["versions"][0]["version"] + case "firefox": + url = "https://product-details.mozilla.org/1.0/firefox_versions.json" + version = requests.get(url).json()["LATEST_FIREFOX_VERSION"] + case "edge": + url = "https://edgeupdates.microsoft.com/api/products" + version = next(filter(lambda p: p.get("Product") == "Stable", requests.get(url).json()))['Releases'][0]['ProductVersion'] + case "chromium": + all_binaries = "https://snapshot.debian.org/mr/binary/chromium/" + version = [item["version"] for item in requests.get(all_binaries).json().get("result", [])][0].split('-')[0] + + with open(env_file, "a") as variables: + variables.write(f"VERSION={version}") + shell: python + env: + BROWSER: ${{ inputs.browser }} + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Configure Git + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + + - name: Enable Git LFS + run: | + git lfs install + git lfs track "*.zip" + git add .gitattributes + git commit -m "Configure Git LFS" || echo "LFS already configured" + + - name: Create branch and push + run: | + BRANCH="${{ matrix.browser }}-${VERSION}" + + echo "Checking branch $BRANCH..." + if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then + echo "$BRANCH branch already exists. Skip." + else + echo "Creating branch and download deb" + git checkout -b "$BRANCH" + + case ${{ matrix.browser }} in + chrome) + url="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${VERSION}-1_amd64.deb" + driver_url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chromedriver-linux64.zip" + ;; + firefox) + url="https://ftp.mozilla.org/pub/firefox/releases/${VERSION}/linux-x86_64/en-US/firefox-${VERSION}.deb" + + echo "As for now it downloads latest geckodriver" + driver_latest=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r .tag_name) + driver_url="https://github.com/mozilla/geckodriver/releases/download/$driver_latest/geckodriver-${driver_latest}-linux64.tar.gz" + ;; + edge) + url="https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${VERSION}-1_amd64.deb" + driver_url="https://msedgedriver.microsoft.com/${VERSION}/edgedriver_linux64.zip" + ;; + chromium) + ts=$(curl -s "https://snapshot.debian.org/mr/binary/chromium/${VERSION}-1/binfiles?fileinfo=1" \ + | jq -r '.fileinfo[ .result[] | select(.architecture=="amd64") | .hash ][0].first_seen') + url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium_${VERSION}-1_amd64.deb" + driver_url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium-driver_${VERSION}-1_amd64.deb" + ;; + esac + + echo "Download browser..." + wget -O ${{ matrix.browser }}.deb $url + echo "Zipping package..." + mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} + zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}.zip ${{ matrix.browser }}.deb + + echo "Download driver..." + wget -P web-browsers/${{ matrix.browser }}/${VERSION} $driver_url + + if [ '${{ matrix.browser }}' == 'chromium' ]; then + find . -type f -iname "*-driver*" -print0 | xargs -0 zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}-driver.zip + rm -f web-browsers/${{ matrix.browser }}/${VERSION}/*.deb + fi + + # Commit and push + git add web-browsers/${{ matrix.browser }}/${VERSION} + git commit -m "Add ${{ matrix.browser }} ${VERSION} package and driver" + git push origin "$BRANCH" + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 590d82b14d100dd4f507ecd4365b6da7637ed2b4 Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Tue, 14 Oct 2025 18:36:48 +0200 Subject: [PATCH 2/6] Add chrome-for-testing Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml index 10e5c61..c132ea2 100644 --- a/.github/workflows/download-browsers.yml +++ b/.github/workflows/download-browsers.yml @@ -10,6 +10,7 @@ on: options: - firefox - chrome + - chrome-for-testing - edge - chromium version: @@ -37,7 +38,8 @@ jobs: {"browser": "firefox", "version": ""}, {"browser": "chrome", "version": ""}, {"browser": "edge", "version": ""}, - {"browser": "chromium", "version": ""} + {"browser": "chromium", "version": ""}, + {"browser": "chrome-for-testing", "version": ""}, ]' ) else @@ -105,6 +107,9 @@ jobs: case "chromium": all_binaries = "https://snapshot.debian.org/mr/binary/chromium/" version = [item["version"] for item in requests.get(all_binaries).json().get("result", [])][0].split('-')[0] + case "chrome-for-testing": + url="https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" + version=requests.get(url).json()['channels']['Stable']['version'] with open(env_file, "a") as variables: variables.write(f"VERSION={version}") @@ -163,13 +168,21 @@ jobs: url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium_${VERSION}-1_amd64.deb" driver_url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium-driver_${VERSION}-1_amd64.deb" ;; + chrome-for-testing) + url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chrome-linux64.zip" + driver_url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chromedriver-linux64.zip" + ;; esac echo "Download browser..." - wget -O ${{ matrix.browser }}.deb $url - echo "Zipping package..." - mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} - zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}.zip ${{ matrix.browser }}.deb + if [ '${{ matrix.browser }}' != 'chrome-for-testing' ]; then + wget -O ${{ matrix.browser }}.deb $url + echo "Zipping package..." + mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} + zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}.zip ${{ matrix.browser }}.deb + else + wget -P web-browsers/${{ matrix.browser }}/${VERSION} $url + fi echo "Download driver..." wget -P web-browsers/${{ matrix.browser }}/${VERSION} $driver_url From b53ac8d4fc7f87a10c9dd5e34345991a2077715a Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Wed, 15 Oct 2025 15:28:15 +0200 Subject: [PATCH 3/6] Switch to firefox-esr. Add aarch64 support Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 91 +++++++++++++------------ 1 file changed, 46 insertions(+), 45 deletions(-) diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml index c132ea2..c391142 100644 --- a/.github/workflows/download-browsers.yml +++ b/.github/workflows/download-browsers.yml @@ -39,7 +39,7 @@ jobs: {"browser": "chrome", "version": ""}, {"browser": "edge", "version": ""}, {"browser": "chromium", "version": ""}, - {"browser": "chrome-for-testing", "version": ""}, + {"browser": "chrome-for-testing", "version": ""} ]' ) else @@ -49,8 +49,6 @@ jobs: ]' ) fi - - # Use a heredoc-style output block (avoids parsing errors) echo "matrix<> $GITHUB_OUTPUT echo "$MATRIX_JSON" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT @@ -65,13 +63,9 @@ jobs: - name: Check version id: need_latest run: | - echo "Running for: ${{ matrix.browser }}" - echo "Checking if version has been set" - if [ -z ${{ matrix.version }} ]; then - echo "Version is empty. Get latest version" + if [ -z "${{ matrix.version }}" ]; then echo "get_latest=true" >> $GITHUB_OUTPUT else - echo "Version: ${{ matrix.version }}" echo "get_latest=false" >> $GITHUB_OUTPUT echo "VERSION=${{ matrix.version }}" >> $GITHUB_ENV fi @@ -91,6 +85,7 @@ jobs: id: latest_version run: | import requests, os + browser = os.environ.get("BROWSER") env_file = os.getenv('GITHUB_ENV') @@ -99,23 +94,20 @@ jobs: url = "https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions" version = requests.get(url).json()["versions"][0]["version"] case "firefox": - url = "https://product-details.mozilla.org/1.0/firefox_versions.json" - version = requests.get(url).json()["LATEST_FIREFOX_VERSION"] + version = requests.get("https://snapshot.debian.org/mr/binary/firefox-esr/").json()["result"][0]["version"] case "edge": url = "https://edgeupdates.microsoft.com/api/products" version = next(filter(lambda p: p.get("Product") == "Stable", requests.get(url).json()))['Releases'][0]['ProductVersion'] case "chromium": - all_binaries = "https://snapshot.debian.org/mr/binary/chromium/" - version = [item["version"] for item in requests.get(all_binaries).json().get("result", [])][0].split('-')[0] + version = requests.get("https://snapshot.debian.org/mr/binary/chromium/").json()["result"][0]["version"].split('-')[0] case "chrome-for-testing": url="https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions.json" version=requests.get(url).json()['channels']['Stable']['version'] - with open(env_file, "a") as variables: variables.write(f"VERSION={version}") shell: python env: - BROWSER: ${{ inputs.browser }} + BROWSER: ${{ matrix.browser }} - name: Checkout repository uses: actions/checkout@v4 @@ -137,65 +129,74 @@ jobs: - name: Create branch and push run: | + set -e BRANCH="${{ matrix.browser }}-${VERSION}" echo "Checking branch $BRANCH..." if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then - echo "$BRANCH branch already exists. Skip." - else - echo "Creating branch and download deb" - git checkout -b "$BRANCH" - + echo "$BRANCH branch already exists. Skipping." + exit 0 + fi + git checkout -b "$BRANCH" + + if [[ "${{ matrix.browser }}" = "firefox" || "${{ matrix.browser }}" = "chromium" ]]; then ARCH_LIST="amd64 aarch64"; else ARCH_LIST="amd64"; fi + + for ARCH in $ARCH_LIST; do + echo "Downloading for $ARCH..." case ${{ matrix.browser }} in chrome) url="https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${VERSION}-1_amd64.deb" driver_url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chromedriver-linux64.zip" ;; firefox) - url="https://ftp.mozilla.org/pub/firefox/releases/${VERSION}/linux-x86_64/en-US/firefox-${VERSION}.deb" - - echo "As for now it downloads latest geckodriver" + deb_arch=$([ "$ARCH" = "aarch64" ] && echo "arm64" || echo "amd64") + ts=$(curl -s "https://snapshot.debian.org/mr/binary/firefox-esr/${VERSION}/binfiles?fileinfo=1" \ + | jq -r ".fileinfo[ .result[] | select(.architecture==\"${deb_arch}\") | .hash ][0].first_seen") + url="snapshot.debian.org/archive/debian/${ts}/pool/main/f/firefox-esr/firefox-esr_${VERSION}_${deb_arch}.deb" driver_latest=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r .tag_name) - driver_url="https://github.com/mozilla/geckodriver/releases/download/$driver_latest/geckodriver-${driver_latest}-linux64.tar.gz" + deb_arch=$([ "$ARCH" = "aarch64" ] && echo "-aarch64" || echo "64") + driver_url="https://github.com/mozilla/geckodriver/releases/download/$driver_latest/geckodriver-${driver_latest}-linux${deb_arch}.tar.gz" ;; edge) url="https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${VERSION}-1_amd64.deb" driver_url="https://msedgedriver.microsoft.com/${VERSION}/edgedriver_linux64.zip" ;; chromium) + deb_arch=$([ "$ARCH" = "aarch64" ] && echo "arm64" || echo "amd64") ts=$(curl -s "https://snapshot.debian.org/mr/binary/chromium/${VERSION}-1/binfiles?fileinfo=1" \ - | jq -r '.fileinfo[ .result[] | select(.architecture=="amd64") | .hash ][0].first_seen') - url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium_${VERSION}-1_amd64.deb" - driver_url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium-driver_${VERSION}-1_amd64.deb" + | jq -r ".fileinfo[ .result[] | select(.architecture==\"${deb_arch}\") | .hash ][0].first_seen") + url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium_${VERSION}-1_${deb_arch}.deb" + driver_url="snapshot.debian.org/archive/debian/${ts}/pool/main/c/chromium/chromium-driver_${VERSION}-1_${deb_arch}.deb" ;; chrome-for-testing) url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chrome-linux64.zip" driver_url="https://storage.googleapis.com/chrome-for-testing-public/${VERSION}/linux64/chromedriver-linux64.zip" ;; esac - - echo "Download browser..." + + deb_arch=$([ "$ARCH" = "aarch64" ] && echo "arm64" || echo "amd64") + mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} + + echo "Downloading browser..." if [ '${{ matrix.browser }}' != 'chrome-for-testing' ]; then - wget -O ${{ matrix.browser }}.deb $url - echo "Zipping package..." - mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} - zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}.zip ${{ matrix.browser }}.deb + wget -P web-browsers/${{ matrix.browser }}/${VERSION} -O "${{ matrix.browser }}_${deb_arch}.deb" "$url" + zip -j "web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}_${deb_arch}.zip" "${{ matrix.browser }}_${deb_arch}.deb" + rm -f "${{ matrix.browser }}_${deb_arch}.deb" else - wget -P web-browsers/${{ matrix.browser }}/${VERSION} $url + wget -P "web-browsers/${{ matrix.browser }}/${VERSION}" "$url" fi - - echo "Download driver..." - wget -P web-browsers/${{ matrix.browser }}/${VERSION} $driver_url + + echo "Downloading driver..." + wget -P "web-browsers/${{ matrix.browser }}/${VERSION}" "$driver_url" if [ '${{ matrix.browser }}' == 'chromium' ]; then - find . -type f -iname "*-driver*" -print0 | xargs -0 zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}-driver.zip - rm -f web-browsers/${{ matrix.browser }}/${VERSION}/*.deb + find . -type f -iname "*-driver*${deb_arch}*" -print0 | xargs -0 zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}-driver-${deb_arch}.zip + rm -f web-browsers/${{ matrix.browser }}/${VERSION}/*${deb_arch}.deb fi - - # Commit and push - git add web-browsers/${{ matrix.browser }}/${VERSION} - git commit -m "Add ${{ matrix.browser }} ${VERSION} package and driver" - git push origin "$BRANCH" - fi + done + + git add web-browsers/${{ matrix.browser }}/${VERSION} + git commit -m "Add ${{ matrix.browser }} ${VERSION} package and driver" + git push origin "$BRANCH" env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From d97f8275e701c7fbdf8f282762f80aecd6f61c67 Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Wed, 22 Oct 2025 18:00:24 +0200 Subject: [PATCH 4/6] Switch to S3 Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 64 ++++++++++--------------- 1 file changed, 25 insertions(+), 39 deletions(-) diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml index c391142..e2dfcbe 100644 --- a/.github/workflows/download-browsers.yml +++ b/.github/workflows/download-browsers.yml @@ -20,9 +20,6 @@ on: schedule: - cron: "0 10 * * MON" #UTC time -permissions: - contents: write - jobs: generate-matrix: runs-on: ubuntu-latest @@ -109,35 +106,28 @@ jobs: env: BROWSER: ${{ matrix.browser }} - - name: Checkout repository - uses: actions/checkout@v4 + - name: Login to AWS + uses: aws-actions/configure-aws-credentials@v4 with: - fetch-depth: 0 - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Configure Git - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" + aws-region: "eu-central-1" + role-to-assume: "arn:aws:iam::332405224602:role/iog-catalyst-storage-uploader" - - name: Enable Git LFS - run: | - git lfs install - git lfs track "*.zip" - git add .gitattributes - git commit -m "Configure Git LFS" || echo "LFS already configured" - - - name: Create branch and push + - name: Download from repos and upload into S3 run: | set -e - BRANCH="${{ matrix.browser }}-${VERSION}" + BUCKET_NAME="iog-catalyst-storage" + + versions=$(aws s3api list-objects-v2 \ + --bucket "$BUCKET_NAME" \ + --prefix "${{ matrix.browser }}/" \ + --delimiter "/" \ + --query "CommonPrefixes[].Prefix" \ + --output text) - echo "Checking branch $BRANCH..." - if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then - echo "$BRANCH branch already exists. Skipping." - exit 0 + if echo "$versions" | grep -q "${{ matrix.browser }}/${VERSION}/"; then + echo "${VERSION} already exists. Skipping." + exit 0 fi - git checkout -b "$BRANCH" if [[ "${{ matrix.browser }}" = "firefox" || "${{ matrix.browser }}" = "chromium" ]]; then ARCH_LIST="amd64 aarch64"; else ARCH_LIST="amd64"; fi @@ -175,28 +165,24 @@ jobs: esac deb_arch=$([ "$ARCH" = "aarch64" ] && echo "arm64" || echo "amd64") - mkdir -p web-browsers/${{ matrix.browser }}/${VERSION} + mkdir -p ${{ matrix.browser }}/${VERSION} echo "Downloading browser..." if [ '${{ matrix.browser }}' != 'chrome-for-testing' ]; then - wget -P web-browsers/${{ matrix.browser }}/${VERSION} -O "${{ matrix.browser }}_${deb_arch}.deb" "$url" - zip -j "web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}_${deb_arch}.zip" "${{ matrix.browser }}_${deb_arch}.deb" + wget -P ${{ matrix.browser }}/${VERSION} -O "${{ matrix.browser }}_${deb_arch}.deb" "$url" + zip -j "${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}_${deb_arch}.zip" "${{ matrix.browser }}_${deb_arch}.deb" rm -f "${{ matrix.browser }}_${deb_arch}.deb" else - wget -P "web-browsers/${{ matrix.browser }}/${VERSION}" "$url" + wget -P "${{ matrix.browser }}/${VERSION}" "$url" fi echo "Downloading driver..." - wget -P "web-browsers/${{ matrix.browser }}/${VERSION}" "$driver_url" + wget -P "${{ matrix.browser }}/${VERSION}" "$driver_url" if [ '${{ matrix.browser }}' == 'chromium' ]; then - find . -type f -iname "*-driver*${deb_arch}*" -print0 | xargs -0 zip -j web-browsers/${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}-driver-${deb_arch}.zip - rm -f web-browsers/${{ matrix.browser }}/${VERSION}/*${deb_arch}.deb + find . -type f -iname "*-driver*${deb_arch}*" -print0 | xargs -0 zip -j ${{ matrix.browser }}/${VERSION}/${{ matrix.browser }}-driver-${deb_arch}.zip + rm -f ${{ matrix.browser }}/${VERSION}/*${deb_arch}.deb fi done - - git add web-browsers/${{ matrix.browser }}/${VERSION} - git commit -m "Add ${{ matrix.browser }} ${VERSION} package and driver" - git push origin "$BRANCH" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + + aws s3 cp ${{ matrix.browser }}/${VERSION} s3://${BUCKET_NAME}/${{ matrix.browser }}/${VERSION} --recursive From 02d91c7fd45f413d1575aca3e15b229c3c8c79c4 Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Thu, 23 Oct 2025 16:17:13 +0200 Subject: [PATCH 5/6] Use CI role Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml index e2dfcbe..5efe107 100644 --- a/.github/workflows/download-browsers.yml +++ b/.github/workflows/download-browsers.yml @@ -110,7 +110,7 @@ jobs: uses: aws-actions/configure-aws-credentials@v4 with: aws-region: "eu-central-1" - role-to-assume: "arn:aws:iam::332405224602:role/iog-catalyst-storage-uploader" + role-to-assume: "arn:aws:iam::332405224602:role/ci" - name: Download from repos and upload into S3 run: | From 1a0f3238ae78e29d0a4406a18532d00d522bb5b1 Mon Sep 17 00:00:00 2001 From: Evgeniy Dikevich Date: Thu, 23 Oct 2025 16:24:41 +0200 Subject: [PATCH 6/6] Small naming changes Signed-off-by: Evgeniy Dikevich --- .github/workflows/download-browsers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/download-browsers.yml b/.github/workflows/download-browsers.yml index 5efe107..6b56bd6 100644 --- a/.github/workflows/download-browsers.yml +++ b/.github/workflows/download-browsers.yml @@ -1,10 +1,10 @@ -name: Download browsers packages +name: Download browsers and drivers packages on: workflow_dispatch: inputs: browser: - description: "Select browser or driver" + description: "Select browser and driver" required: true type: choice options: