Goal to have dotnet core c# example pipelines for major git source control dev ops including github, azure devops, gitlab, bitbucket, and etc. Should auto run only on a new pull request, show test results in native ui per website, code coverage, and some additional manual steps running code quality analysis. Badge support native is also nice or from https://shields.io/category/build. Also will try service containers and database unit tests. Originally off of gitlab-ci-example-dotnetcore.
- Please do a pull request to the proper source control pipeline that you are trying to update.
[ ] GitHub Actions ![Actions Status](https://github.com/lastlink/dotnet-ci-pipelines/workflows/.net%20core/badge.svg?raw=true)
- limits 2,000 (per month) to 20 concurrent jobs support windows, ubuntu, mac
- doesn't currently support retry and max timeout although will cancel when limit reached.
- Badges - workflow
- api docs - docfx html only
- [!] Tests - no display just logs and work flow
- CodeClimate issues with non npm and docker in docker
- resharper cli - no manual triggers supports
- security dependency scan - snyk
- artifacts
- Services mysql, postgres, and mssql work like a charm
- [] release
- [] obfuscators
[ ] Bitbucket
- limits 50 minutes per month, support docker images
- Badges
- api docs - docfx html only
- Tests - working display
- junit works fine
- print out code coverage in log, not natively supported
- [!] CodeClimate - docker in docker throwing an error
docker: Error response from daemon: authorization denied by plugin pipelines: -v only supports $BITBUCKET_CLONE_DIR and its subdirectories.
- resharper cli
- artifacts only last 12 hrs are downloaded in the
.tar.gz
format, could not figure out the curl method - Services mysql and postgres work
- mssql starts up, gives lots of details on docker image running, not enough detail for why test was failing
[ ] Azure DevOps ![Build Status](https://camo.githubusercontent.com/8cb531a1073e1754f3ee6858a4eb27974a888af51a10e1a4c0b1fa790923fd8b/68747470733a2f2f6465762e617a7572652e636f6d2f66756e6b746563686e6f2f646f746e65742532306369253230706970656c696e65732f5f617069732f6275696c642f7374617475732f646f746e65742532306369253230706970656c696e65733f6272616e63684e616d653d6d6173746572)
- limits 1,800 minutes per month on private projects. $40 a month for unlimited minutes.
- Badges?
- build
- api docs - docfx html only (pdf works locally, maybe self hosted runner)
- Tests - working display
- CodeClimate 3m
- resharper cli
- artifacts
- Service Containers mysql and postgress work fine
- mssql fails to connect after container should be initialized successfully. (only initializes for linux agents)
- really want mssql to work for ease w/ some integrated testing and pre deploy checks. tracking progress in stackoverflow and developercommunity.visualstudio.com
[ ] Gitlab
![Lines of Code](https://camo.githubusercontent.com/6beab9ccbfa1d385e287385e625093d15806b1d106d19c301d817c118eef4cdf/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6c6173746c696e6b5f646f746e65742d63692d706970656c696e6573266d65747269633d6e636c6f63)
- limits 400
2,000minutes per month per group or user. $10 to buy 1,000 extra minutes expires end of year. - Badges
- api docs - docfx
- Tests - Junit
- Coverage - coverlet
- Services - mysql, postgres, mssql all work
- mssql occasionally fails to connect and step just needs to be rerun.
- Code Quality
- resharper clis
- inspectcode 1min
- dupfinder 1min
- CodeClimate (complexity & duplication) 10min+
- resharper clis
- artifacts
- pricing free up to 5 users. Cloud Build limits first 120 minutes a day free. $30 per 1000 priced per minute.
- used solely for pushing docker builds to a registry and deploying. While in theory you could run unit tests in a docker image it is recommended to use an alternative for unit tests
dotnet ef migrations add InitialMigrations --project ../MyProject.Repository/MyProject.Repository.csproj --startup-project ./MyProject.Api.csproj
dotnet ef migrations remove
dotnet ef database update --project ../MyProject.Repository/MyProject.Repository.csproj --startup-project ./MyProject.Api.csproj