Skip to content
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

Static build #14

Merged
merged 5 commits into from
Oct 4, 2024
Merged

Static build #14

merged 5 commits into from
Oct 4, 2024

Conversation

ericonr
Copy link
Member

@ericonr ericonr commented Aug 28, 2024

This is in progress

Depends on a few changes which are going to be applied to epics-in-docker as well.

@ericonr ericonr force-pushed the static-build branch 2 times, most recently from f3818f0 to e61be3d Compare August 28, 2024 16:13
@ericonr
Copy link
Member Author

ericonr commented Aug 28, 2024

This depends on cnpem/epics-in-docker#75

Copy link
Collaborator

@henriquesimoes henriquesimoes left a comment

Choose a reason for hiding this comment

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

Missing squash for temporary commit d5772f4.

build-ioc.sh Outdated Show resolved Hide resolved
build-ioc.sh Outdated Show resolved Hide resolved
build-ioc.sh Outdated Show resolved Hide resolved
.github/workflows/build.yml Show resolved Hide resolved
iocBoot/iocBPMRFFEApp/run.sh Outdated Show resolved Hide resolved
source: ./
target: /opt/rffe-epics-ioc
working_dir: /opt/rffe-epics-ioc
command: lnls-build-static-ioc rffe-epics-ioc
Copy link
Collaborator

Choose a reason for hiding this comment

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

If we don't change this lnls-build-static-ioc arguments interface, this PR is good to be merge, IMO.

@ericonr ericonr force-pushed the static-build branch 2 times, most recently from 990dbe8 to a4f477b Compare October 4, 2024 15:15
We are no longer going to use containers for this application, because
we are interested in moving away from Docker, and launching Podman from
udev rules, as our design requires, no longer works on modern distros
[1]. Launching a service to monitor podman would work, but requires
complicated integration (the native systemd-podman integration isn't
available in Debian 12), so we decided to move to the same setup as
afc-epics-ioc, with static binaries.

The container creation scheme is also removed.

[1] https://www.marcusfolkesson.se/blog/systemd-udev/
musl allows us to produce a fully static binary, which can be deployed
on almost any machine.

The intended deployment directory is /opt/rffe-epics-ioc, so that's
where we build the IOC, to guarantee that envPaths has the correct
definitions.

Add the resulting tarball to .gitignore as well.
The CI workflow will test that building the IOC is always working. The
resulting tarball for tags will also be published in the project's
release page.

We used the softprops/action-gh-release action because it was
recommended by the now unmantained official action,
actions/upload-release-asset [1].

[1] https://github.com/actions/upload-release-asset
@ericonr ericonr merged commit ca758c4 into main Oct 4, 2024
2 checks passed
@ericonr ericonr deleted the static-build branch October 4, 2024 15:25
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