-
Notifications
You must be signed in to change notification settings - Fork 99
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
[Feature Contribution]: Initial DevOps and github actions clean up #252
Comments
To be discussed on Tuesday morning... |
I hope following topics are implemented on GHA - they are accepted in ADR-0011:
I think they should be kicked on release-created event on GHA. |
@danuw I think it is better to upload OpenAPI YAML because SDK user can implement their clients without WebAPI container. In addition, it is also better to upload documents of client bindings. In case of Java, we can generate Javadoc (API document) from source code comments, and we can integrate generating process into build process. In my personal Java project, I use GHA to generate both release binary and API documents, then they will be uploaded to GitHub packages and GitHub pages. I'm happy if it helps you. https://github.com/YaSuenag/ffmasm/blob/main/.github/workflows/release.yml#L26-L38 |
Storing for work in progress diagrams... How to use?How to use in standalone solutionsflowchart TD
%% How to use in standalone solutions
StandaloneProject[Standalone Dotnet project \n - eg Function] --> |Included as nuget package| SDK[Carbon Aware SDK \n as .net library]
SDK --> |built for linux| github[Github packages]
SDK --> |built for arm64| github[Github packages]
SDK --> |built for amd64| github[Github packages]
How to use with Hosted APIsflowchart TD
%% How to use with Hosted APIs
%% Hosting options and methods of deployment
Project -->|connects via REST| API[Carbon Aware API]
Project --> |uses| RestClient{Carbon Aware \n OpenAPI Generated \n REST Clients}
RestClient --> |?| java[JAVA client]
RestClient --> |NPM| node[node client]
RestClient --> |Pypi| python[python client]
RestClient --> |?| rust[rust client]
RestClient --> |?| go[go client]
Used in processesflowchart TD
%% Used in processes
Pipeline --> |Command line| CLI
Hosting options and methods of deploymentflowchart TD
%% -----------------------------------------
%% Hosting options and methods of deployment
CAAPI[Hosted API] --> GSF[GSF Hosted]
CAAPI --> Self[Self Hosted]
Self --> Cloud
Self --> Local
Cloud --> Container[Container]
Cloud --> WebApp[Web App]
Local --> Container2[Container]
Local --> WebApp2[Web App]
TODO
|
Thank @danuw for sharing current progress! I have some comments:
|
Hi @YaSuenag , the above is just work in progress. I think the idea was to help visually explain what the repo enables and what we may or may not cover (that part is not yes illustrated on those graphs) Anyway below to answer your questions.
yes (I assume this also relates to stated ADR right?)
yes, do you have anything (documented steps) to test, so we use as first success criteria and covered scope please?
I believe this would not necessarily cover at first but rather document further how to generate if needed (such as through videos etc...). Do you believe more documentation is needed and if yes where shall we start? - we can probably discuss this on Tuesday Hope above helps... Let me know |
My suggestion is: To also add workflows for testing Code samples of those samples we can test - that way we will keep them up to date with |
@YaSuenag Would you be willing to collaborate on this with @danuw , as I can see you originally proposed that ADR? |
Sure, I'd like to collaborate on this! |
Following conversation with @YaSuenag around client packages releases, following is a refined plan of actions
[WIP] Work in progress for diagrams below Numbered are workflows flowchart TD
subgraph PreRel[" "]
direction LR
PR[1 - PR] --> |merges to| DEV[Dev branch]
DEV --> | triggers | PreRelease[2 - Pre-Release]
PreRelease --> |pushes to| GHP(GitHub Packages)
PreRelease --> Deploy[2.a Deploy]
Deploy --> | deploys to | myAPI[Public API - Dev]
PreRelease --> | | libs[2.b Generate libraries]
Deploy -.-> |pulls from| GHP
libs -.-> |pulls from| GHP
AnyClient[Any Client] -.-> |pulls from| GHP
end
NOTE: Originally my main thought is that the above can be derived to official release by using the main branch. In all cases, releases would be automated from manual creation of pull requests. I will need to experiment with GitHub Releases to confirm what I have in mind for path to official release. In the meantime here are some examples of release pages for different repos.
Reference docs:
|
Relates to Green-Software-Foundation#252 and Green-Software-Foundation#326 Signed-off-by: Yasumasa Suenaga <[email protected]>
Relates to Green-Software-Foundation#252 and Green-Software-Foundation#326 Signed-off-by: Yasumasa Suenaga <[email protected]>
Thank you for your time @YaSuenag. What we discussed:
|
#381 Related |
This issue has not had any activity in 120 days. Please review this issue and ensure it is still relevant. If no more activity is detected on this issue for the next 20 days, it will be closed automatically. |
Will need to refresh this. May be worth closing and creating a new one... |
this has been addressed by v.1.2 and v.13 |
What happened?
This is both an issue and a new feature.
It aims to address duplication in Github actions as well as bring consistency of approach.
First the audit with initial thoughts:
Initial recommendation of first changes to address:
Also (further topics to cover in github actions):
Thank you @bderusha for your inputs
cc @vaughanknight @Willmish
Code of Conduct
Feature Commitment
The text was updated successfully, but these errors were encountered: