Skip to content

Build Automation - RFC #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
ssrowe opened this issue Mar 31, 2025 · 4 comments · Fixed by #12
Open

Build Automation - RFC #11

ssrowe opened this issue Mar 31, 2025 · 4 comments · Fixed by #12
Assignees

Comments

@ssrowe
Copy link

ssrowe commented Mar 31, 2025

Overview

Implement automated build, packaging, and publishing capabilities for OIE to streamline development workflows and improve distribution.

Requirements

Priority 1: Core Build Automation

  • Configure GitHub Actions to execute the current Ant-based build system
  • Handle code signing
  • Support seamless transition to a future build system (implementation details TBD)
  • Create installable packages for all supported platforms (Windows, macOS, Linux)
  • Implement automated verification testing as part of the build pipeline - not full application, unit or integration testing

Priority 2: Artifact Publishing

  • Publish library artifacts to GitHub Packages
    • Configure for future replication to additional repositories as needed
    • Include proper versioning and dependency management
    • Ensure appropriate documentation is generated and published

Priority 3: Container Support

  • Create and publish Docker images to GitHub Container Registry
    • Design for future replication to additional container registries as needed
    • Include multiple tags for version tracking (latest, specific versions)
    • Optimize container size and security

Priority 3: Automated Testing & Releases (nice to have)

  • Run automated tests as part of build process
  • Automate the release process including Release, Release Notes

Success Criteria

  • Fully automated builds triggered by pull requests and daily builds
  • Installable packages generated for each supported platform
  • Libraries and Docker images published to GitHub and accessible by users
  • Complete documentation for accessing and using published artifacts

Supported Platforms

  • Windows
    • 64-bit Installer (exe/msi)
    • 64-bit Zip
  • Linux
    • Tar.gz
    • RPM
    • Installer (sh)
  • macOS
    • Installer (dmg)
    • Tar.gz
@tonygermano
Copy link
Member

I'd be ok with dropping the requirement for Linux/RPM and only having Linux/tar.gz and Linux/Installer (sh).

@kpalang kpalang self-assigned this Apr 1, 2025
kpalang added a commit that referenced this issue Apr 1, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 1, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 2, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 2, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 2, 2025
Jarsigning can be disabled by setting the property -DdisableSigning=true

Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 2, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
@kayyagari
Copy link

I have been thinking of making MC run in embedded mode. This greatly helps in integration testing of server and the plugins. I would like to take a stab at it.

kpalang added a commit that referenced this issue Apr 2, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 2, 2025
…ertificate

Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
@ssrowe
Copy link
Author

ssrowe commented Apr 2, 2025

I have no idea who might want to install via RPM without a package repo. But it’s a standard package for many setup tools, so likely not difficult to support.

Also, I think we should add hashes for the binaries.

And we should either get a install4j license or plan to re-implement the install4j scripts.

@tonygermano
Copy link
Member

And we should either get a install4j license or plan to re-implement the install4j scripts.

Related to issue #2

kpalang added a commit that referenced this issue Apr 2, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 3, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
kpalang added a commit that referenced this issue Apr 8, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
@kpalang kpalang reopened this Apr 8, 2025
kpalang added a commit that referenced this issue Apr 8, 2025
Signed-off-by: Kaur Palang <kaur.palang@brightcodecompany.com>
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 a pull request may close this issue.

4 participants