Skip to content

Add GitHub Actions workflows with Ubuntu 24.04 and Tcl 9.0 compilation#7

Open
go-while with Copilot wants to merge 9 commits into
mainfrom
copilot/fix-6
Open

Add GitHub Actions workflows with Ubuntu 24.04 and Tcl 9.0 compilation#7
go-while with Copilot wants to merge 9 commits into
mainfrom
copilot/fix-6

Conversation

Copilot AI commented Sep 2, 2025

Copy link
Copy Markdown
Contributor

This PR implements a comprehensive CI/CD pipeline for the Newsgrouper project using GitHub Actions with modern infrastructure and native Tcl 9.0 support.

Key Features

Container Infrastructure

  • Ubuntu 24.04 base image for latest security updates and package support
  • Tcl 9.0.2 compiled from source eliminating the need for manual upgrades
  • Optimized build process with proper dependency management and artifact cleanup
  • Clean dependency isolation - removed conflicting system Tcl packages across all workflows
  • Multi-architecture support ready for future expansion

CI/CD Workflows

Build and Publish (build-and-publish.yml):

  • Comprehensive Tcl syntax validation across entire codebase
  • Automated package creation and GitHub releases for tagged versions
  • Container builds with Tcl 9.0 compiled from source
  • Publishes to GitHub Container Registry (ghcr.io/go-while/newsgrouper)

Test Workflow (test.yml):

  • Lightweight validation for fast PR feedback with Tcl 9.0.2 compiled from source
  • Project structure and script validation
  • Configuration sample verification

Debug Workflow (debug.yml):

  • Manual troubleshooting and environment debugging
  • Advanced Tcl testing capabilities
  • Consistent Tcl 9.0.2 compilation from source

Container Images

Published images include:

  • ghcr.io/go-while/newsgrouper:main (latest main branch)
  • ghcr.io/go-while/newsgrouper:v1.0.0 (tagged releases)

All workflows consistently compile Tcl 9.0.2 from source with proper dependency isolation. The build process specifically avoids installing system Tcl packages (tcl, tcl-dev, tcllib, tk, tcl-tls) that are designed for Tcl 8.6.x and could conflict with the compiled Tcl 9.0.

Security & Best Practices

  • Non-root container execution with proper permissions
  • Comprehensive .gitignore for clean repository management
  • Robust error handling and validation throughout workflows
  • Secure container registry integration with GitHub packages

Fixes #6.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits September 2, 2025 11:17
Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>
Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>
Copilot AI changed the title [WIP] create - build and publish - github actions workflow Add GitHub Actions workflows for build and publish automation Sep 2, 2025
Copilot AI requested a review from go-while September 2, 2025 11:20
@go-while go-while marked this pull request as ready for review September 2, 2025 11:50
Copilot AI review requested due to automatic review settings September 2, 2025 11:50

This comment was marked as outdated.

@go-while

go-while commented Sep 2, 2025

Copy link
Copy Markdown
Owner

@copilot
you mentioned "Note: The project requires Tcl 9.0 but Ubuntu 22.04 provides 8.6.14. This may need manual upgrade for full functionality."

update container to use 24.04 or 25.04 and add compile tcl 9.0 from source:
https://sourceforge.net/projects/tcl/files/Tcl/9.0.2/tcl9.0.2-src.tar.gz/download

Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>

Copilot AI commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@copilot
you mentioned "Note: The project requires Tcl 9.0 but Ubuntu 22.04 provides 8.6.14. This may need manual upgrade for full functionality."

...

Updated the container to use Ubuntu 24.04 and added compilation of Tcl 9.0.2 from source using the provided URL. The container now includes:

  • Ubuntu 24.04 base image
  • Tcl 9.0.2 compiled from source with proper configuration
  • All build dependencies managed and cleaned up after compilation
  • Updated release notes to reflect that Tcl 9.0 is now included

Changes implemented in commit 5251c89.

Copilot AI changed the title Add GitHub Actions workflows for build and publish automation Add GitHub Actions workflows with Ubuntu 24.04 and Tcl 9.0 compilation Sep 2, 2025
@go-while

go-while commented Sep 2, 2025

Copy link
Copy Markdown
Owner

@copilot
why didn't you remove calls to apt-get install -y \

  •        tcl \
    
  •        tcl-dev \
    
  •        tcllib \
    
  •        tk \
    

...

should not be needed any more since you compile from source? please review the build-and-publish.yml again.

Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>

Copilot AI commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@copilot
why didn't you remove calls to apt-get install -y \

  •        tcl \
    

...

You're absolutely right! I removed the redundant apt-get install commands for tcl, tcl-dev, tcllib, tk, and tcl-tls since we're now compiling Tcl 9.0 from source. These Ubuntu packages are designed for system Tcl 8.6.x and could cause conflicts with the compiled Tcl 9.0.

Changes made in commit ce217e1:

  • Removed tcllib, tk, and tcl-tls package installations
  • Added explanatory comments about why these packages were removed
  • Container now uses only the compiled Tcl 9.0.2 without conflicting system packages

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@go-while

go-while commented Sep 2, 2025

Copy link
Copy Markdown
Owner

@copilot
.github/workflows/debug.yml is installing tcl packages but should compile tcl 9.0 from source.

…em packages

Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>

Copilot AI commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@copilot
.github/workflows/debug.yml is installing tcl packages but should compile tcl 9.0 from source.

You're absolutely right! Updated debug.yml to compile Tcl 9.0.2 from source instead of installing the conflicting system packages (tcl, tcl-dev, tcllib, tk). Now it's consistent with the build-and-publish.yml workflow.

Changes in commit a4c0b99:

  • Removed system Tcl package installations
  • Added Tcl 9.0.2 compilation from source with proper build dependencies
  • Added explanatory comments about why system packages were removed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces a comprehensive CI/CD pipeline using GitHub Actions to automate building, testing, and publishing of the Newsgrouper project with modern Ubuntu 24.04 infrastructure and native Tcl 9.0 compilation.

Key changes:

  • CI/CD automation with three distinct workflows for testing, building/publishing, and debugging
  • Tcl 9.0 source compilation replacing dependency on outdated system packages
  • Container publishing to GitHub Container Registry with proper security practices

Reviewed Changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 3 comments.

File Description
.github/workflows/test.yml Lightweight PR validation workflow with Tcl syntax checking and project structure verification
.github/workflows/debug.yml Manual debugging workflow with advanced Tcl testing and artifact collection
.github/workflows/build-and-publish.yml Main CI/CD pipeline for building, testing, containerizing, and releasing the application
.github/workflows/README.md Documentation explaining workflow purposes, triggers, and usage patterns

Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/build-and-publish.yml
Comment thread .github/workflows/README.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@go-while

go-while commented Sep 2, 2025

Copy link
Copy Markdown
Owner

@copilot
update .github/workflows/test.yml to compile tcl 9.0 from source and remove installation of tcl packages via apt...

…m packages

Co-authored-by: go-while <137838162+go-while@users.noreply.github.com>

Copilot AI commented Sep 2, 2025

Copy link
Copy Markdown
Contributor Author

@copilot
update .github/workflows/test.yml to compile tcl 9.0 from source and remove installation of tcl packages via apt...

Updated test.yml to compile Tcl 9.0.2 from source and removed conflicting system Tcl package installations (tcl, tcl-dev, tcllib, tk, tcl-tls). Now all workflows consistently use the same Tcl 9.0 compilation approach and Ubuntu 24.04.

Changes in commit a566dff.

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.

create - build and publish - github actions workflow

3 participants