input-output-hk / input-output-hk/catalyst-storage

Automate Browser Artifact Packaging for CI/CD

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.