Skip to content

ci: add Ubuntu Docker variant with matrix build strategy#4

Merged
pcfreak30 merged 2 commits intodevelopfrom
ubuntu
Mar 1, 2026
Merged

ci: add Ubuntu Docker variant with matrix build strategy#4
pcfreak30 merged 2 commits intodevelopfrom
ubuntu

Conversation

@pcfreak30
Copy link
Member

@pcfreak30 pcfreak30 commented Mar 1, 2026

  • Create Dockerfile.ubuntu based on Ubuntu 24.04 with Go 1.26 from longsleep PPA
  • Update CI workflow to use matrix strategy for parallel builds
  • Configure matrix with Alpine (Dockerfile) and Ubuntu (Dockerfile.ubuntu) variants
  • Add tag suffixes for versioned tags: v1.0.0-ubuntu, develop-ubuntu
  • Set latest tags: latest for Alpine, ubuntu for Ubuntu variant

This pull request introduces an Ubuntu-based Docker image variant for the portal-builder and implements a matrix build strategy to automate the creation of both image variants.

Key Changes:

  1. New Ubuntu Docker Image: Added Dockerfile.ubuntu which creates an Ubuntu 24.04-based build environment. This provides an alternative to the existing base image for users who require Ubuntu-specific dependencies or prefer Ubuntu as their base OS. The image includes Go 1.26, build tools, yq (YAML processor), xportal, and pre-cached Go modules for faster builds.

  2. Matrix Build Strategy: Modified the GitHub Actions workflow to use a build matrix that constructs both image variants in parallel:

    • Standard image (using Dockerfile) tagged as latest
    • Ubuntu variant (using Dockerfile.ubuntu) tagged as ubuntu and with the -ubuntu suffix on all other tags
  3. Enhanced Tagging: Updated the Docker metadata configuration to dynamically apply the appropriate tag suffix (-ubuntu) to the Ubuntu variant while maintaining the standard tagging scheme for the base image.

The changes enable users to pull either ghcr.io/lumeweb/portal-builder:latest (standard) or ghcr.io/lumeweb/portal-builder:ubuntu (Ubuntu-based) depending on their build requirements, with both images being automatically built and published on every release.

- Create Dockerfile.ubuntu based on Ubuntu 24.04 with Go 1.26 from longsleep PPA
- Update CI workflow to use matrix strategy for parallel builds
- Configure matrix with Alpine (Dockerfile) and Ubuntu (Dockerfile.ubuntu) variants
- Add tag suffixes for versioned tags: v1.0.0-ubuntu, develop-ubuntu
- Set latest tags: latest for Alpine, ubuntu for Ubuntu variant
@kody-ai

This comment has been minimized.

- Detect architecture dynamically using dpkg --print-architecture
- Select appropriate yq binary (amd64 or arm64) based on system architecture
- Remove unused GO_VERSION build argument
- Ensures compatibility with multi-platform build matrix in workflow
@kody-ai
Copy link

kody-ai bot commented Mar 1, 2026

Kody Review Complete

Great news! 🎉
No issues were found that match your current review configurations.

Keep up the excellent work! 🚀

Kody Guide: Usage and Configuration
Interacting with Kody
  • Request a Review: Ask Kody to review your PR manually by adding a comment with the @kody start-review command at the root of your PR.

  • Validate Business Logic: Ask Kody to validate your code against business rules by adding a comment with the @kody -v business-logic command.

  • Provide Feedback: Help Kody learn and improve by reacting to its comments with a 👍 for helpful suggestions or a 👎 if improvements are needed.

Current Kody Configuration
Review Options

The following review options are enabled or disabled:

Options Enabled
Bug
Performance
Security
Cross File

Access your configuration settings here.

@pcfreak30 pcfreak30 merged commit b44bdda into develop Mar 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant