Skip to content

GitHub Actions Linux x86 Build#4

Open
HuiJun wants to merge 17 commits into
NASA-AMMOS:masterfrom
HuiJun:feature/github_ci
Open

GitHub Actions Linux x86 Build#4
HuiJun wants to merge 17 commits into
NASA-AMMOS:masterfrom
HuiJun:feature/github_ci

Conversation

@HuiJun
Copy link
Copy Markdown

@HuiJun HuiJun commented Apr 8, 2026

Purpose

Add GitHub Actions CI/CD workflow to automatically build VICAR binaries for Linux x86-64 (RHEL 8) on every push and pull request. This enables automated builds, testing, and distribution of VICAR releases without requiring manual setup of the build environment.

Proposed Changes

  • [ADD] GitHub Actions workflow (.github/workflows/build-vicar.yml) for automated VICAR builds on Linux x86-64 (RHEL 8 / Rocky Linux 8) using Docker containers
  • [ADD] Automated artifact upload of built binaries (1,751 files, 149 MB compressed) with proper relative paths and wildcards
  • [ADD] Build verification step to validate artifacts before upload with SIGPIPE error handling
  • [ADD] Build summary generation checking architecture-specific lib directories with detailed file counts and status
  • [ADD] Build log artifact collection for debugging
  • [ADD] Placeholder for macOS arm64 build (disabled until externals are published)
  • [ADD] Automated release creation for tagged versions
  • [CHANGE] Updated all GitHub Actions to v5 for Node.js 24 compatibility

Issues

  • Resolves the need for reproducible VICAR builds across different environments
  • Addresses build artifact distribution for open source users
  • Provides automated build validation and testing infrastructure

Testing

  • Build Status: Successful completion on GitHub Actions (Run #15+)
  • Build Environment: Rocky Linux 8 container on ubuntu-latest runner
  • Build Logs: No critical errors, only expected warnings from legacy C code
  • Artifact Verification: Downloaded and verified vicar-binaries-x86-64-linx.zip
    • Size: 149 MB (566 MB uncompressed)
    • Total files: 1,751 files across all expected directories (p1, p2, p3, mars, gui, vids, vrdi, tae53, lib, olb)
    • 414 VICAR executables in p2/lib/x86-64-linx
    • 346 Mars programs in mars/lib/x86-64-linx
    • 25 static libraries (.a files) including librtl.a, libp2sub.a, libmarssub.a
    • 4 shared libraries (.so files)
  • Artifact Location: Available as workflow artifacts, retention: 7 days

HuiJun added 17 commits March 26, 2026 10:20
The build summary was incorrectly checking for a top-level bin/ directory,
but VICAR's open source build creates architecture-specific directories like
p2/lib/x86-64-linx/ where executables and libraries are located.

Changes:
- Check all architecture-specific lib directories (p1, p2, p3, mars, etc.)
- Count total files across all build output directories
- Show sample output from p2/lib directory
- Update success criteria (>100 files instead of checking bin/)
- Add architecture to summary output
- Add set +e/-e to handle errors gracefully
The mac64-osx external dependencies are not yet available in the releases,
so the macOS arm64 build will fail when trying to download them. Commenting
out the macOS build configuration until the externals are ready.
Update all GitHub Actions to their latest versions to resolve Node.js 20
deprecation warnings:
- actions/checkout@v4 -> v5
- actions/download-artifact@v4 -> v5
- softprops/action-gh-release@v1 -> v2 (no longer needs explicit GITHUB_TOKEN)

This fixes the warning: 'Node.js 20 is deprecated. The following actions
target Node.js 20 but are being forced to run on Node.js 24'
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