-
Notifications
You must be signed in to change notification settings - Fork 7
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
To define release pipelines #34
Comments
Hello, @ayr-ton ! A release stage is definitely something we plan to work on. 😄 We still have to hash out some details on how to approach the release stage. From a UX perspective, we're trying to stay out of the way as much as possible. But releasing software requires additional configuration, such as the credentials to the used services. Should Pipelinit print instructions to configure the repository after it runs? Include comments in the generated files? Something else entirely? There is also the step to determine where an artifact should be released. We're currently working on a ROADMAP, and the release stage will be there, but it isn't something we plan to start right now.
What do you have in mind? A template for publishing packages in the GitHub registry? I think this would be a good starting point since this repository itself needs this. |
@oesgalha Thinking in the organization we may have: The easiest for testing would be GitHub for containers or ttl.sh, as we can make containers from almost everything. We can add the code mentioning the needed variables/secrets, similar to what happens in GitHub Actions examples. So the stages I imagine would be a What do you think? It's a good path for this stage MVP? I'm also thinking about the release process of helm charts, but I think this would be for a different phase. |
@oesgalha @ayr-ton
on:
push:
tags:
- 'v*.*.*' |
About the registry choice... I think the CLI should come with sensible defaults for registries. When the project is initialized, the configuration file has some comments showing how to configure other registries and what are the ones being used by default. That is, after the first run, the platforms = ["github"]
# Registries to publish artifacts.
[registries]
# Default values per stack are presented below.
# If your project use other registry(ies), uncomment and edit
# docker = ["https://hub.docker.com"]
# javascript = ["https://registry.npmjs.org"]
# python = ["https://pypi.python.org/pypi"] And an info level log should inform the user to configure the repository afterwards with the required secrets. That way most projects won't need any additional configuration. Projects that uses private and/or alternative registries can edit it. Also, for Docker, the default registry should be Docker Hub. Because that is the default registry used by the command line. |
Let me try writing some commits in my free time so we could start visualizing the discussion. |
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
@joao10lima seems that #80 is the MVP for this one already. Let me know if I can help with any testing \o/ |
Hello @ayr-ton, if you could test and post what you think on the PR it sure will be of great help, the crude of the implementation is already on the branch, for this one it is limited only for Docker release, and you can test in any project with a Dockerfile if you want to change the registry url just change it on the pipelinit.toml e run the CLI once more. |
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80
* feat(core/cli) add docker release stage with sensible default Following the discussion #34, this PR implements a release stack for docker images that can be built in the repository and with that adds a sensitive default to the Pipelinit configuration file with the possibility to other 'registries' for the generated CI. The template basically looks for paths with Dockerfiles that can be built and adds metadata involving the path found and the specified version. Resolves: #80 * feat: add docker release stage e2e test
This is more a discussion right now, then we could think if it makes sense and new issues can be created from it.
I think the steps for lint-format-build-test are well defined for most platforms now.
Speaking of release, some pipelines are pretty predictable if the deploy step is separated as expected.
Like, if I have built this Flask API pipeline with a Dockerfile in mind if I have a stage for releasing this in GitHub registry or another one I like I should be able to deploy it easily in ECS/EKS/Heroku.
So, would work if PRs focused on this topic are for releasing in GitHub as a first trial? I have one in mind if this structure makes sense. If not, let's discuss another one.
The text was updated successfully, but these errors were encountered: