Skip to content

feat: windows docker images#31

Merged
varonix0 merged 2 commits intomainfrom
daniel/windows-docker
Oct 10, 2025
Merged

feat: windows docker images#31
varonix0 merged 2 commits intomainfrom
daniel/windows-docker

Conversation

@varonix0
Copy link
Member

Description 📣

Added build for Windows-based CLI docker images.

Type ✨

  • Bug fix
  • New feature
  • Improvement
  • Breaking change
  • Documentation

@varonix0 varonix0 self-assigned this Oct 10, 2025
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Greptile Overview

Summary

This PR adds Windows Docker image build support by creating a new goreleaser-windows job and corresponding goreleaser configuration for Windows binaries.

Key changes:

  • New goreleaser-windows job runs on windows-2022 runner and builds Windows Docker images for amd64 and arm64
  • Created .goreleaser-windows.yaml config with Windows-specific build settings (CGO disabled, windows GOOS, amd64/arm64 architectures)
  • Added minimal Windows Dockerfile using nanoserver:ltsc2022 base image
  • Modified job dependencies so main goreleaser job now depends on Windows job completion

Critical issue found:

  • The goreleaser-windows job is missing the actions/checkout@v3 step before running git commands, which will cause the workflow to fail

Confidence Score: 2/5

  • This PR cannot be merged as-is due to a critical syntax error that will cause the workflow to fail
  • Score of 2 reflects a blocking issue: the goreleaser-windows job is missing the required checkout step, causing all git commands to fail. The Windows build configuration itself is sound, but the workflow will not execute successfully without this fix.
  • .github/workflows/release_build_infisical_cli.yml requires immediate attention - the checkout step must be added before the workflow can run

Important Files Changed

File Analysis

Filename Score Overview
.github/workflows/release_build_infisical_cli.yml 2/5 Added Windows build job but missing critical checkout step that will cause git commands to fail. Job dependency order may block releases if Windows builds fail.
.goreleaser-windows.yaml 4/5 New goreleaser config for Windows builds with proper CGO, ldflags, and multi-arch support. Missing docker manifests for unified tagging.
docker/windows 5/5 Simple Windows Dockerfile using nanoserver base image. Missing newline at EOF but otherwise functional.

Sequence Diagram

sequenceDiagram
    participant GH as GitHub Actions
    participant WR as Windows Runner
    participant UR as Ubuntu Runner
    participant DH as Docker Hub
    participant GR as GoReleaser
    
    Note over GH: Tag Push (v*.*.*)
    
    GH->>WR: Start goreleaser-windows job
    WR->>WR: Fetch tags (FAILS - no checkout)
    WR->>WR: Setup Go 1.19.3+
    WR->>DH: Login to Docker Hub
    WR->>WR: Setup Docker Buildx
    WR->>GR: Run goreleaser-pro with windows config
    GR->>GR: Build Windows binaries (amd64, arm64)
    GR->>GR: Create Docker images (nanoserver:ltsc2022)
    GR->>DH: Push windows-amd64 and windows-arm64 images
    
    WR-->>GH: Windows job complete
    
    GH->>UR: Start goreleaser job (needs windows)
    UR->>UR: Checkout code
    UR->>UR: Setup Go, Docker, OSXCross
    UR->>GR: Run goreleaser-pro
    GR->>GR: Build Linux/Darwin binaries
    GR->>GR: Create Linux Docker images (Alpine)
    GR->>DH: Push linux-amd64 and linux-arm64 images
    GR->>DH: Create manifest tags (latest, version)
    UR->>UR: Publish to CloudSmith, S3, etc.
    
    UR-->>GH: Goreleaser job complete
    
    GH->>UR: Start npm-release job
    UR->>UR: Publish to NPM registry
Loading

3 files reviewed, 4 comments

Edit Code Review Agent Settings | Greptile

goreleaser:
runs-on: ubuntu-latest-8-cores
# needs: [cli-integration-tests]
needs: [goreleaser-windows] # For quick iteration, we're releasing Windows images first
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: The comment says "For quick iteration, we're releasing Windows images first", but this creates a hard dependency where the main Linux build cannot complete without Windows builds succeeding first. If Windows builds fail, the entire release pipeline (including npm release) will be blocked.

Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/release_build_infisical_cli.yml
Line: 87:87

Comment:
**style:** The comment says "For quick iteration, we're releasing Windows images first", but this creates a hard dependency where the main Linux build cannot complete without Windows builds succeeding first. If Windows builds fail, the entire release pipeline (including npm release) will be blocked.

How can I resolve this? If you propose a fix, please make it concise.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temporary

@varonix0 varonix0 merged commit 20290db into main Oct 10, 2025
2 checks passed
varonix0 added a commit that referenced this pull request Oct 10, 2025
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.

2 participants