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

[Docs] document ci/cd best practices #4685

Closed
2 tasks done
Tracked by #5783
samhita-alla opened this issue Jan 8, 2024 · 8 comments · Fixed by #5827 · May be fixed by #5875
Closed
2 tasks done
Tracked by #5783

[Docs] document ci/cd best practices #4685

samhita-alla opened this issue Jan 8, 2024 · 8 comments · Fixed by #5827 · May be fixed by #5875
Assignees
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers hacktoberfest pri3

Comments

@samhita-alla
Copy link
Contributor

Description

document some general ci/cd best practices discussed by Bernhard in this conversation:: https://discuss.flyte.org/t/15853851/hi-team-i-d-like-to-understand-a-little-more-about-best-prac#1eaa0ca8-d3ec-49a9-9f46-b8537c610cb3

Are you sure this issue hasn't been raised already?

  • Yes

Have you read the Code of Conduct?

  • Yes
@samhita-alla samhita-alla added documentation Improvements or additions to documentation pri3 labels Jan 8, 2024
Copy link

dosubot bot commented Jan 8, 2024

🤖

Hi @samhita-alla!

I'm Dosu, a bot here to assist you while we wait for a human maintainer. I can help you solve bugs, answer questions, and guide you in becoming a contributor. I'm here to make your experience smoother. Let's get started!

Based on the conversation you've referenced and the current practices in the Flyte repository, here are some general CI/CD best practices:

  1. Use of GitHub Actions for workflow automation: GitHub Actions is used to automate the release process in the Flyte repository. This includes generating git tags, building Docker images, publishing these images, and releasing Helm and manifest files. You can see this in action in the create_release.yml workflow file.

  2. Use of secrets for authentication: GitHub secrets are used to store sensitive data like the GitHub token (FLYTE_BOT_PAT) and username (FLYTE_BOT_USERNAME). This keeps sensitive data secure and not exposed in the code.

  3. Use of matrix strategy for parallel execution: The matrix strategy is used in the publish-flyte-component-image job. This allows for parallel execution of tasks, in this case, for different components of Flyte.

  4. Use of Docker for building and publishing images: Docker is used to build and publish images for the release version. This is evident in the build-docker-images, publish-flyte-binary-image, and publish-flyte-component-image jobs.

  5. Use of Helm for package management: Helm is used to manage the Kubernetes packages. This is evident in the helm-release job where Helm is installed and used to prepare the Flyte Helm release.

  6. Use of GoReleaser for releasing Go applications: GoReleaser is used in the manifest-release job to automate the release process for Go applications. This includes creating the release on GitHub, building the Go binaries, and creating the release notes.

These practices are not specific to Bernhard but are common best practices for CI/CD in software development. If you have any specific questions about these practices or if there's something else you'd like to know, feel free to ask.

For more information, you can refer to the create_release.yml workflow file in the Flyte repository.

Sources


This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

If you want to continue the conversation, start your reply with @dosu-bot.

@Murdock9803
Copy link
Contributor

Hello @samhita-alla @davidmirror-ops,
I would like to take up this issue and contribute to the org. Please assign the issue to me 🙌

@davidmirror-ops
Copy link
Contributor

@Murdock9803 you're tackling multiple issues, let us know when you need any help or have questions. Thanks!

@Murdock9803
Copy link
Contributor

Sure, I'll ask for any needed context 🙌

@Murdock9803
Copy link
Contributor

Murdock9803 commented Oct 5, 2024

@davidmirror-ops Since this is my first time adding a document to the codebase, I'd like to know where should I add the document. I tried to thoroughly read the codebase, and found that docs directory can be used. In this, docs/user_guide/basics/ is a good place I believe ?

Also, instead of adding a whole new page, we can add a section in existing pages ? like Deployment Page

@davidmirror-ops
Copy link
Contributor

@Murdock9803 right, I think adding a section to this page may work

@neelshah2409
Copy link

Hey @davidmirror-ops
I would also like to work on this issue.

@davidmirror-ops
Copy link
Contributor

@neelshah2409 There you go. Thanks for volunteering. While @Murdock9803 has been working on this, whoever submits the first accepted PR gets the points.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers hacktoberfest pri3
Projects
None yet
4 participants