input-output-hk / input-output-hk/catalyst-storage
Automate Browser Artifact Packaging for CI/CD
- Dominant language
- Earthly
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Automate the process of downloading Chrome and Firefox browsers along with all required dependencies, and package them into self-contained .zip archives. This allows our CI pipelines (Debian-based) to install and use browsers without relying on external internet connectivity.
### Description
Today, we manually create and upload .zip bundles for web browsers (Chrome, Firefox) and their dependencies to support our CI/CD pipelines — especially for environments where network access is restricted or inconsistent (e.g. for debian:bookworm images). This task aims to automate that process via a Docker-based tool or shell script.
- Download the latest versions of Chrome & Firefox (or Chrome-for-Testing)
- Resolve all required .deb dependencies
- Package into versioned .zip archives (for each browser and arch)
- Optionally wrap logic in a Docker image or shell script for repeatable use
This process is error-prone and time-consuming. We want to automate this workflow by creating a reusable Docker image or CLI tool that:
1. Downloads the latest compatible browser versions.
2. Extracts and repackages them as .zip / .deb with dependencies.
3. Outputs a directory structure matching the current web-browsers/ layout.
4. Optionally publishes the new artifacts to GitHub or outputs them for manual PR.
The goal is to keep our automation flow deterministic while reducing engineering effort when browsers are updated.
### Acceptance Criteria
* Script(s) reliably download:
* Chrome .deb package
* Firefox .deb package
* System dependencies (via apt-get install --download-only)
* Drivers (e.g. chromedriver, geckodriver)
* Final .zip archives contain all assets required for offline installation
* README added with clear instructions to run the script manually or inside Docker
* Optional: A Dockerfile exists that wraps the full logic
* Optional: CI job to auto-refresh these archives on demand or version tag
### Resources
- [ catalyst-storage repo](https://github.com/input-output-hk/catalyst-storage/tree/main/web-browsers) under web-browsers.
- Reference the correct [Rxxxx branch](https://github.com/input-output-hk/catalyst-ci/blob/master/earthly/flutter/installer/Earthfile#L10) for caching purposes.
Contributor guide
No contributing guide indexed for this repository
Research direction
Review the web-browsers/ layout in catalyst-storage and the referenced Earthfile caching branch first. Use the acceptance criteria to define the downloader, dependency collection, archive structure, and optional Docker or CI boundaries. Done means versioned Chrome and Firefox archives include drivers and dependencies, with a README; Docker and CI automation are optional.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- debian, docker, shell
- Domain
- build-system, ci-cd, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100