Skip to content

feat(auth):CD PipeLine WorkFlow for Pullpiri[#116]#125

Merged
youngtaekiim merged 6 commits intoeclipse-pullpiri:refactoringfrom
akshaylg0314:refactoring
Jul 16, 2025
Merged

feat(auth):CD PipeLine WorkFlow for Pullpiri[#116]#125
youngtaekiim merged 6 commits intoeclipse-pullpiri:refactoringfrom
akshaylg0314:refactoring

Conversation

@akshaylg0314
Copy link
Contributor

@akshaylg0314 akshaylg0314 commented Jul 15, 2025

📝 PR Description
CD Pipeline Workflow for Pullpiri

🔗 Related Issue
Closes #116

🧪 Test Method
Github Action should run and check based on the Code change.
Release Process will trigger through:-
git tag v1.0.0
git push origin v1.0.0

Below is the link for GitHub Action run for the pull request from the CI-Pipeline branch of my fork to the refactoring branch:
https://github.com/akshaylg0314/pullpiri/actions/runs/16293961200

We have successfully verified the release.yml workflow in the CICD_PULLPIRI DUMMY project under my GitHub repository. When a version tag is created and pushed (e.g., v1.0.39), it automatically triggers the release workflow and generates the expected reports.

GitHub Actions Run (CI Execution):
View Workflow Run

GitHub Release (Artifacts Published):
View Release Tag v1.0.40

This demonstrates the release automation pipeline is functioning correctly — including license report generation, artifact uploads, and QueVee metadata integration.

✅ Checklist
[✅] Code conventions are followed
[✅] Tests are added/modified
[✅] Documentation is updated (if necessary)

@akshaylg0314
Copy link
Contributor Author

@youngtaekiim @leeeunkoo we have Automated and verified CD Release Process, Now it will create release automatically moment we will create tag with -v and push the tag.
Please merge the changes, so that we can see the release working.
Thanks!!

@youngtaekiim
Copy link
Contributor

Very good job!
(However, I couldn't review them one by one because the yaml changes were too big.)

TODO
When release tag, container image for x86_64, aarch64 are relased in ghcr (GitHub Container Registry).
Example

@youngtaekiim youngtaekiim merged commit ecfdce3 into eclipse-pullpiri:refactoring Jul 16, 2025
6 checks passed
@youngtaekiim youngtaekiim linked an issue Jul 16, 2025 that may be closed by this pull request
@akshaylg0314
Copy link
Contributor Author

akshaylg0314 commented Jul 16, 2025

ghcr

Yes @youngtaekiim i am still working on CD PipeLine
There are few things pending in todo list like code coverage report update and Test cases for ActionController
I want to ask When release tag, container image for x86_64, aarch64 are relased in ghcr (GitHub Container Registry) only we have to upload or at SDV cloud also we have to upload the docker image?

thnaks!!

@youngtaekiim
Copy link
Contributor

ghcr

Yes @youngtaekiim i am still working on CD PipeLine There are few things pending in todo list like code coverage report update and Test cases for ActionController I want to ask When release tag, container image for x86_64, aarch64 are relased in ghcr (GitHub Container Registry) only we have to upload or at SDV cloud also we have to upload the docker image?

thnaks!!

I think that only ghcr is sufficient. But this is very low-priority function. If we need, I modify release workflow yaml.

@akshaylg0314
Copy link
Contributor Author

akshaylg0314 commented Jul 16, 2025

ghcr

Yes @youngtaekiim i am still working on CD PipeLine There are few things pending in todo list like code coverage report update and Test cases for ActionController I want to ask When release tag, container image for x86_64, aarch64 are relased in ghcr (GitHub Container Registry) only we have to upload or at SDV cloud also we have to upload the docker image?
thnaks!!

I think that only ghcr is sufficient. But this is very low-priority function. If we need, I modify release workflow yaml.

ok sure i will Make the changes In release workflow for uploading container image to ghcr
thanks!!

@akshaylg0314
Copy link
Contributor Author

akshaylg0314 commented Jul 16, 2025

Hey @youngtaekiim can you please guide me related to docker files i have to use for building container/docker image
Like which all images we have to upload to ghcr?

@youngtaekiim
Copy link
Contributor

youngtaekiim commented Jul 16, 2025

Hey @youngtaekiim can you please guide me related to docker files i have to use for building container/docker image Like which all images we have to upload to ghcr?

Now, please do not upload image to ghcr.
The following is for your personal reference only.

Make container image for pullpiri

In Makefile in project root folder,

.PHONY: image
image:
	podman build -t localhost/pullpiri-agent:latest -f containers/Dockerfile-agent .
	podman build -t localhost/pullpiri-player:latest -f containers/Dockerfile-player .
	podman build -t localhost/pullpiri-server:latest -f containers/Dockerfile-server .

# command for dev

.PHONY: builder
builder:
#	podman run --privileged --rm tonistiigi/binfmt --install all
#	podman buildx build --platform linux/amd64,linux/arm64 -t localhost/pullpiribuilder:latest -f containers/builder/Dockerfile-pullpiribuilder .
#	podman buildx build --platform linux/amd64,linux/arm64 -t localhost/pullpirirelease:latest -f containers/builder/Dockerfile-pullpirirelease .
	podman build -t localhost/pullpiribuilder:latest -f containers/builder/Dockerfile-pullpiribuilder .
	podman build -t localhost/pullpirirelease:latest -f containers/builder/Dockerfile-pullpirirelease .

make builder - make intermediate container image (This process can be removed, but it was introduced for developer use because the container full build takes too long.)
make image - make 3 container image for each components of project

If you refer to the Dockerfiles of the two make commands, you can easily understand how it works.
For reference, these Dockerfiles work on both aarch64 and x86_64 environments.
If you have any further questions, please add a comment.

GitHub workflow for uploading to ghcr

Refer workflow.
This is very old version. So there is only one container image.

However, with this method, the released container image is separated by architecture. If you look at the current pullpiri package, you can see that the amd64 and arm64 versions are uploaded separately for the v0.1.0-alpha tag. Link

The initial versions of pullpiribuilder and pullpirirelease were built directly from the Linux terminal and uploaded to ghcr with multi-architecture.
Then, as in the link, you can see that they are uploaded by architecture with a single image name.

It would be a huge step forward if you could find a way to upload container images to ghcr by architecture under a single name via github workflow.
(ADD : maybe platforms in workflow yaml file can be a vector like platforms: linux/arm64, linux/amd64 if they have same Dockerfile

@akshaylg0314
Copy link
Contributor Author

akshaylg0314 commented Jul 16, 2025

Now, please do not upload image to ghcr.

I'm planning to integrate the container image upload to GHCR directly within release.yml, so it only runs as part of the release process.

🔧 Implementation plan:
I'll use a single multi-stage Dockerfile, structured like this:

Dockerfile
FROM rust:1.78.0-slim AS builder
...

@akshaylg0314
Copy link
Contributor Author

@youngtaekiim
Hey! I’ve successfully uploaded multi-architecture container images to GHCR.
Please take a look at the examples below:

🔗 Example Image 1
🔗 Example Image 2
🔗 Example Image 3

Let me know if everything looks good. If you're okay with it, I’ll go ahead and raise a PR.

Thanks!!

@youngtaekiim
Copy link
Contributor

@youngtaekiim Hey! I’ve successfully uploaded multi-architecture container images to GHCR. Please take a look at the examples below:

🔗 Example Image 1 🔗 Example Image 2 🔗 Example Image 3

Let me know if everything looks good. If you're okay with it, I’ll go ahead and raise a PR.

Thanks!!

wow, very good (and fast) job.
I will review it when you upload a new PR.

@youngtaekiim youngtaekiim self-assigned this Jul 18, 2025
chaehee-lim pushed a commit to chaehee-lim/pullpiri that referenced this pull request Sep 3, 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.

[TASK] CD Pipeline release workflow development for miltestone 1

2 participants