oqtane.framework
oqtane.framework copied to clipboard
Add CI/CD
We can add:
- AppVeyor
- Travis
- AzurePipeline
@sbwalker could please handle this, it is useful to ensure that every PR doesn't break anything else
Sorry I am not sure I understand this item. Are you suggesting that you want to volunteer to set up a CI/CD pipeline? Or are you asking for me to do it?
I'm asking you, because you 're the owner for this repo, if you want me to do it in your behalf no problem
Also I suggested in another issue to create a unit tests project, which I will do, this will be super useful with CI/CD
I'm not able to do this because I don't have access to this repo
In order to certify that releases are "official", it would be best if I created any accounts to third party services. What services are needed to set this up?
Simply log into Travis & AppVeyor and login with GitHub account, then within few clicks you are able to setup the CI/CD. I can do this in your behalf If you give me access to this repo as a dev o the team. In both ways I'm ready to help as much as I can
Thanks
@sbwalker could please handle this, or add me on this repo, so I can handle this from my side, because the services require a permission to access this repo
Any updates on this? I could start write some unit tests and may be some functional tests to ensure that all the APIs works as expects
Please @sbwalker add CI/CD or give me a permission to handle it, it's very useful to ensure that every commit doesn't break anything else
Thanks
Wouldn't Azure DevOps be a more logical option? I'd say using Microsoft tooling should be preferred?
Azure Pipelines could be an option
@sbwalker final call if you don't mind, or give me a permission to finish this up
@sbwalker Azure pipelines are great. I have been using them for a couple of years and they beat everything else hands down. Since the pipeline YAML definition is checked into the repo, others can take advantage of it as well. In theory, If I am planning a large module, I could check in code and have the pipeline build octane in the dev environment and have it install the module(s), and run tests. I am not aware if module installation could be automated but I don't see it as a show stopper to implement.
Azure Pipeline is another good option, hope @sbwalker consider this one
I would go with Azure Pipelines as well. It provides the best support for Microsoft tools and ecosystem and of course has nice integration with github. Seems like a no brainer to me.
@kevin-weir I already pointed o that in https://github.com/oqtane/oqtane.framework/issues/227#issuecomment-621764822
I'm having difficulty getting the "deploy to azure' button working although it worked fine before. something must have changed.
I'm trying to create a CI/CD pipeline found a few things.
You may want to re-consider how you initialize configuration in the startup.vb to optimize for CI/CD. Below are some thoughts regarding Azure DevOps deployment.
CI
- it was necessary to remove the modules and theme templates before the publish task as it kept causing it to fail. They are not necessary on azure anyways (from what I can tell so far). If there is a better solution, please share.
CD
- web app fails with 500.30 due to appsettings.json file missing while the appsettings.release.json exists. Exception thrown due to appsettings.json being mandatory. The publish step seems to remove appsettings.json or it might be in my .gitignore
- It seems that the current design does not allow for azure configuration settings to be passed in through environment variables. AddEnvironmentVariables() would help
- Consider using CreateDefaultBuilder() as it does a bunch of stuff for you. You many need to reconsider making appsettings.development.json as the normal json file as it would then leverage the default Visual Studio -> properties -> debug -> Environment Variables -> ASPNETCORE_ENVIRONMENT variable already set to Development.
I will share more thoughts as I continue down this CI/CD journey.
slight tweak to above.
You may need to reconsider making appsettings.development.json as the development json file and appsettings.json as the release json file.
@sbwalker could you please give a permission to this repo, so I can setup AppVeyor & Travis
@sbwalker do you time to setup this, I need to invest some time to create a unit test for the framework, then we could create some functional tests if it's possible
I notice may times some PRs brokes the builds because we don't have a proper tests during the build, hope you conside this
@sbwalker I'd absolutely love to setup devops for this project for PR validation. It's pretty straight-forward. Let me know!