เบซเบผเบทเบงเบดเบเบตเบเบฒเบเปเบเปเบฎเบฑเบ badges เบเบตเปเบชเบงเบเบเบฒเบกเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเปเบเบเบญเบเปเบฅเบเบซเบเบถเปเบเบเบญเบเบฅเบฐเบซเบฑเบเบเปเบฒเบ
เบญเบฒเบเบเบฐเปเบเบฑเบ, เบเบธเบเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบตเปเบกเบตเบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเปเบเบเบเบฒเบเบชเบฑเบเบฅเปเบฝเบเปเบเบเบฒเบเบเบธเบเบกเบตเบญเบฒเบเบฒเบเบเบฑเบเบเปเบฝเบงเบเบฑเบ badges เบเบตเปเบชเบงเบเบเบฒเบกเบเบตเปเบกเบตเบชเบฐเบเบฒเบเบฐเบเบฒเบ, เบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบ, เบชเบฐเบเบฑเบเบเบธเบเปเบ nuget ... เปเบฅเบฐเบญเบฒเบเบฒเบเบเบฑเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบเปเบญเบเบเบฝเบเบเบปเบเบเบงเบฒเบกเบเบตเป. เปเบเบเบฒเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบกเบฑเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบฒเบกเบเบตเปเบขเบนเปเปเบเบซเบเบถเปเบเปเบเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบเบฐเปเบเบปเปเบฒ:
เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบฐเปเบเบฐเบเปเบฒเบเปเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบทเปเบเบเบฒเบเบเบญเบเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบชเบปเปเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฑเปเบ .Net Core เปเบ GitLab, เปเบเบตเบเปเบเปเปเบญเบเบฐเบชเบฒเบเปเบเบเบฑเบ GitLab Pages, เปเบฅเบฐเบเบฒเบเบเบธเบเบเบนเปเบเบฒเบเบซเบธเปเบกเบซเปเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบฑเบเบญเบฒเบซเบฒเบเบชเปเบงเบเบเบปเบงเปเบ Azure DevOps.
เบฅเบฐเบซเบฑเบ VS เบเบทเบเปเบเปเปเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเปเบงเบเบเบฒเบเบเบฐเบซเบเบฒเบ
เปเบเบฐเบเปเบฒเปเบเบเบซเบเปเป
CD - เบกเบฑเบเปเบกเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบเบเบฝเบเปเบเป pushed, เปเบฅเบฐเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเปเบซเบผเบธเบเบฅเบปเบเปเบฅเปเบงเบเปเบฝเบงเบเบฑเบเบฅเบนเบเบเปเบฒ?
CI / CD เปเบกเปเบเบซเบเบฑเบเปเบฅเบฐเปเบเบฑเบเบซเบเบฑเบเบเปเบฒเบเบเปเบญเบเบเบฒเบเบกเบฑเบ - เบเปเบฒเบเบชเบฒเบกเบฒเบ google เบกเบฑเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ. เบเบญเบเบซเบฒเปเบญเบเบฐเบชเบฒเบเบเบปเบเบเปเบงเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเปเปเบ GitLab
- เบเบนเปโเบเบฑเบโเบเบฐโเบเบฒโเบชเบปเปเบโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเบเบฑเบ repositoryโ, เบชเปเบฒเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบฅเบงเบกโเปเบเบโเบเปเบฒเบโเปเบงเบฑเบโเปเบโเปเบเปโ, เบซเบผเบทเปเบเบเบฒเบเบญเบทเปเบ, เบขเปเบฒเบเบเบฑเบเปเบเบ เบซเบผเบท implicitly เปเบฅเบตเปเบกเบเปเป,
- เบงเบฝเบโเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเบโเปเบฅเบทเบญเบโเบเบฒเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ, เปเบเบทเปเบญเบโเปเบโเบเบตเปโเบญเบฐโเบเบธโเบเบฒเบโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเปเบเบตเบโเบเบปเบงโเปเบโเบชเบฐโเบเบฒเบโเบเบตเปโเปเบเปโเบฎเบฑเบโ,
- เบงเบฝเบโเบเบฒเบโเปเบเปโเบเบทเบโเบเบฑเบโเบเบฑเปเบโเบเบฒเบกโเปเบฅโเบเบฐโเบเบญเบโเบเบปเบโ,
- เบเบฑเปเบเบเบญเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบฑเบ - i.e. เบเบฐเบซเบเบฒเบ เบงเบฝเบโเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโเบเบญเบโเบเบฑเปเบโเบเบญเบโเบเบตเปโเปเบกเปเบโเบชเปเบฒโเปเบฅเบฑเบโ,
- เบเปเบฒเบเบฑเปเบเบเบญเบเบฅเบปเปเบกเปเบซเบฅเบง (i.e., เบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบญเบเปเบงเบเบตเบฅเบปเปเบกเปเบซเบฅเบง), เบเปเปเบเบฐเบขเบธเบ (.เปเบเบทเบญเบเบชเบฐเปเบซเบกเบต),
- เบเปเบฒเบเบธเบเบเบฑเปเบเบเบญเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบ, เบเปเปเบเบฑเปเบเบเบทเบงเปเบฒเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ.
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบกเบต:
- pipeline - เบเบธเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบตเปเบเบฑเบเปเบเบฑเบเบเบฑเปเบเบเบญเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบ, เบเบปเบเบชเบญเบ, เบฅเบฐเบซเบฑเบเบเบธเบ, เบเปเบฒเปเบเปเบเบฒเบเบเปเปเบชเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบฎเบนเบเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเบ, เปเบฅเบฐเบญเบทเปเบเป.
- เปเบงเบเบต (เบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ) โ เบซเบเปเบงเบโเบเปโเบฅเบดโเบเบฒเบโเบเปเปโ, เบเบฐโเบเบญเบโเบเปเบงเบ 1+ เบงเบฝเบโเบเบฒเบโ,
- เบงเบฝเบเบเบฒเบ (เบงเบฝเบโเปเบฎเบฑเบโเบเบฒเบโเบเปเบฒ) เปเบเบฑเบเบซเบเปเบงเบเบเบฒเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเปเป. เบกเบฑเบเบเบฐเบเบญเบเบเปเบงเบเบชเบฐเบเบฃเบดเบ (เบเบฑเบเบเบฑเบ), เปเบเบทเปเบญเบเปเบเบเบฒเบเปเบเบตเบเบเบปเบง, เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเบเปเบเป / เบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบญเบก, เปเบฅเบฐเบญเบทเปเบเปเบญเบตเบ.
เบเบฒเบกโเบเบฑเปเบโเปเบฅเปเบง, เบงเบฝเบโเบเบฒเบโเปเบกเบทเปเบญโเบชเปเบฒเบโเบเบฑเปเบ CI/CD เบฅเบปเบโเบกเบฒโเปเบกเปเบโเบชเปเบฒเบโเบเบฑเปเบโเปเปเบฒโเบเบตเปโเบเบฐเบเบดเบเบฑเบโเบเบฑเบเบเบฒโเบเบฒเบโเบเบฐเบเบณโเบเบตเปโเบเบณโเปเบเบฑเบโเปเบโเบเบฒเบโเบเปเปเบชเปเบฒเบ, เบเบปเบโเบชเบญเบ โเปเบฅเบฐ โเปเบเบตเบโเปเบเปโเบเบฑเบเบเบฒโเบเปเปโเบเบณเบเบปเบ โเปเบฅเบฐ เบงเบฑเบเบเบธโเบเบฑเบ.
เบเปเบญเบเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบ: เปเบเบฑเบเบซเบเบฑเบ?
- เปเบเบฑเบเบซเบเบฑเบ Gitlab?
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบชเปเบฒเบ repositories เปเบญเบเบฐเบเบปเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบชเบฑเบเบฅเปเบฝเบ, เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบฎเบฑเบเบเปเบฒเบเปเบฒเบเปเบ GitHub, เปเบฅเบฐเบเปเบฒเบเบฐเปเบเบปเปเบฒ greedy. repositories เปเบเปเบเบฒเบเปเบเบฑเบเบเปเปเปเบชเบเบเปเบฒ, เปเบเปเบกเบฒเบฎเบญเบเบเบฑเบเบเบธเบเบฑเบเบเบตเปเบเปเปเบกเบตเปเบซเบเบเบปเบเบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเบเปเบ GitHub.
- เปเบเบฑเบเบซเบเบฑเบเบเปเป Azure DevOps Pipelines?
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเบเบเบฐเบเบปเบก - เบเบงเบฒเบกเบฎเบนเปเบเบญเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบกเปเบเบเปเปเบเปเบฒเปเบเบฑเบ. เบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบเบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบ git เบเบฒเบเบเบญเบ - เปเบเบชเบญเบเบชเบฒเบกเบเบฅเบดเบ, เบเบฒเบเบเปเบฒเปเบเบปเปเบฒเบเบฐเปเบ SSH เปเบเบทเปเบญเบชเบปเปเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฑเบ repository - เปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เบเปเปเปเบเปเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเปเบเปเบฒเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเปเปเบเปเบกเบฒเบเบฒเบเปเบกเปเปเบเบ.
เบเปเบฒเปเบซเบเปเบเปเบฅเบตเปเบกเบเบปเปเบ: เบชเบดเปเบเบเบตเปเบเปเบฒเบเบกเบตเปเบฅเบฐเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ
เบเบงเบโเปเบฎเบปเบฒโเบกเบต:
- repository เปเบ GitLab.
เบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบ:
- เบเบฒเบเบเบฐเบเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเปเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบ,
- เบเบฒเบโเบชเปเบฒเบโเบเบธเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบฎเปเบญเบโเบเปโเบเบฒเบโเบเบฐโเบชเบปเบกโเบเบฐโเบชเบฒเบโเปเบเปโเบฅเบฐโเบเบปเบโเปเบฅเบฐโเบเบฒเบโเบเบธเบโเบเบนเปโเปเบซเปโเปเบกเปโเบเบปเบโ, เบชเบฐโเบซเบเบญเบโเปเบซเปโเบงเปเบฒโเบกเบตโเปเบชเบฑเปเบโเบชเบฐโเปเบเบฒเบฐโเปเบโเบซเบเบถเปเบโเปเบโเบเปเปโเบเบงเบฒเบกโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโ,
- เบเบฒเบเบชเบปเปเบเบเบธเบเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบซเบฒเบญเบฒเบซเบฒเบเบชเปเบงเบเบเบปเบงเปเบ Azure DevOps,
- เบเบฒเบเบเบฐเบเบญเบเปเบญเบเบฐเบชเบฒเบเปเบฅเบฐเบเบฒเบเบเบดเบกเปเบเบตเบเปเบเปเปเบ GitLab Pages,
- เบเปเบฒเบ!11
เบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเบเบทเปเบเบเบฒเบเปเบกเปเบเบขเบนเปเปเบเบฎเบนเบเปเบเบเบเปเปเบเปเปเปเบเบเบตเป:
- เบเบฑเปเบเบเบญเบ 1 - เบชเบฐเบเบฒเปเบซเปเบ
- เบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเบฒเบฅเบฐเบซเบฑเบ, เปเบเบตเบเปเบเปเปเบเบฅเปเบเบปเบเบเบฐเบฅเบดเบเปเบเบฑเบเบเบญเบก
- เบเบฑเปเบโเบเบญเบโเบเบต 2 - เบเบฒเบโเบเบปเบโเบชเบญเบโ
- เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบชเบดเปเบเบเบฐเบเบดเบเบเบฒเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบ, เบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบ, เปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบ
- เบเบฑเปเบเบเบญเบ 3 - เบชเบปเปเบ
- เบงเบฝเบเบเบตเป 1 - เบชเปเบฒเบเบเบธเบ nuget เปเบฅเบฐเบชเบปเปเบเปเบเบเบตเป Azure DevOps
- เบงเบฝเบเบเบฒเบ 2 - เบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเบฒเปเบงเบฑเบเปเบเบเปเบเบฒเบ xmldoc เปเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเปเบฅเบฐเปเบเบตเบเปเบเปเปเบ GitLab Pages
เปเบซเปเปเบฅเบตเปเบกเบเบปเปเบ!
เบเบฒเบโเปเบเบฑเบโเบเปเบฒโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ
เบเบณเบฅเบฑเบเบเบฐเบเบฝเบกเบเบฑเบเบเบต
-
เบชเปเบฒเบเบเบฑเบเบเบตเปเบ
Microsoft Azure -
เปเบโเบซเบฒ
Azure DevOps -
เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเปเบเบเบเบฒเบเปเบซเบกเป
- เบเบทเป - เปเบ
- เบเบฒเบเปเบเบดเปเบเปเบซเบฑเบ - เปเบ
-
เปเบกเบทเปเบญเบเปเบฒเบเบเบฅเบดเบเปเบชเปเบเบธเปเบกเบชเปเบฒเบ, เปเบเบเบเบฒเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐเบเปเบฒเบเบเบฐเบเบทเบเปเบญเบเปเบเบซเบฒเบซเบเปเบฒเบเบญเบเบกเบฑเบ. เปเบเบซเบเปเบฒเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบเบเปเบฒเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเปเบเบเบเบฒเบเปเบเบเบตเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบ (เบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเปเบฒเบเบงเปเบฒเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบเบเปเบฒเบ -> เบเบฒเบเบฅเบงเบก -> Azure DevOps Services block)
-
เปเบเบเบตเป Attrifacts, เบเบฅเบดเบ เบชเปเบฒเบ feed
- เปเบชเปเบเบทเปเบเบญเบเปเบซเบผเปเบ
- เปเบฅเบทเบญเบเบเบฒเบเปเบเบดเปเบเปเบซเบฑเบ
- เบเบปเบเปเบฅเบตเบเบเบฒเบเปเบฅเบทเบญเบ เบฅเบงเบกเปเบญเบปเบฒเปเบเบฑเบเปเบเบเบเบฒเบเปเบซเบผเปเบเบชเบฒเบเบฒเบฅเบฐเบเบฐเบเบปเปเบงเปเบ, เบเบฑเปเบเบเบฑเปเบเปเบซเบผเปเบเบเปเปเปเบเปเบเปเบฝเบเปเบเบฑเบ clone nuget dump
-
เบเบปเบ Connect to feed, เปเบฅเบทเบญเบ Visual Studio, เบเบฑเบเบฅเบญเบเปเบซเบผเปเบเบเบตเปเบกเบฒเบเบฒเบเบเบฅเบฑเบญเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบ
-
เปเบเบเบตเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเบเบเบต, เปเบฅเบทเบญเบ Personal Access Token
-
เบชเปเบฒเบเปเบเปเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเปเป
- เบเบทเป - เบกเบฑเบ
- เบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบ - เบเบฐเบเบธเบเบฑเบ
- เปเบเปเปเบเปเบชเบนเบเบชเบธเบ 1 เบเบต
- เบเบญเบเปเบเบ - เบเบฒเบเบซเบธเปเบกเบซเปเป / เบญเปเบฒเบเปเบฅเบฐเบเบฝเบ
-
เบชเบณเปเบเบปเบฒ token เบเบตเปเบชเปเบฒเบเบเบถเปเบ - เบซเบผเบฑเบเบเบฒเบเบเปเบญเบเบขเปเบฝเบก modal เบเบทเบเบเบดเบ, เบกเบนเบเบเปเบฒเบเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบเปเปเบเป
-
เปเบเบเบตเปเบเบฒเบเบเบฑเปเบเบเปเบฒ repository เปเบ GitLab, เปเบฅเบทเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ CI / CD
-
เบเบฐเบซเบเบฒเบเบเบปเบงเปเบ, เปเบเบตเปเบกเบญเบฑเบเปเปเป
- เบเบทเป - เปเบเปเบเบตเปเบเปเปเบกเบตเบเปเบญเบเบซเบงเปเบฒเบ (เบเบฐเบกเบตเบขเบนเปเปเบ shell เบเปเบฒเบชเบฑเปเบ)
- เบกเบนเบเบเปเบฒ - token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบงเบฑเบ 9
- เปเบฅเบทเบญเบเบเบปเบงเปเบ Mask
เบเบตเปเปเบฎเบฑเบเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบ.
เบเบฒเบเบเบฐเบเบฝเบกเบเบญเบเบเบฒเบเบเปเบฒเบซเบเบปเบเบเปเบฒ
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฒเบเบเบฑเปเบเบเปเบฒ CI/CD เปเบ GitLab เปเบเปเปเบเบฅเป .gitlab-ci.yml
เบเบฒเบเบฎเบฒเบเบเบญเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ. เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเบเบปเบโเปเบชเบฑเปเบโเบเบฒเบโเบเบตเปโเบเบปเบโเปเบญเบโเบเบญเบโเปเบเบฅโเปโเบเบตเปโเปเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒ repositoryโ, เปเบเปโเปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโเบกเบฑเบโเบเปเปโเบเปเบฒโเปเบเบฑเบโ.
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบเบฒเบเบชเปเบงเบเบเบฐเบซเบเบฒเบ, เปเบเบฅเปเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฎเบนเบเปเบเบ YAML
. เปเบญเบเบฐเบชเบฒเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบงเปเบฒเบเบฐเปเบเปเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเปเบเปเปเบเบฅเบฐเบเบฑเบเบชเบนเบเบชเบธเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบฅเบฐเปเบเปเบเปเบฅเบฐเบฅเบฐเบเบฑเบเบเบตเปเบเบดเบเบเบฑเบ.
เบเปเบฒเบญเบดเบ, เปเบซเปเปเบเบตเปเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบฎเบนเบเบเบฒเบ docker เปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบเบเบตเปเบงเบฝเบเบเบฒเบเบเปเบฒเบเปเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบชเปเบฒเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒ
image: mcr.microsoft.com/dotnet/core/sdk:3.1
เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบกเบทเปเบญเบเปเปเบเบทเบเปเบเบตเบเบเบปเบงเบเบฒเบเบเปเบญเบเปเบเบฑเบเบฎเบนเบเบเบฒเบเบเบญเบ Microsoft, เบฎเบนเบเบเบฒเบเบเบตเปเบฅเบฐเบเบธเบเบฐเบเบทเบเบเบฒเบงเปเบซเบฅเบ, เปเบเบดเปเบเปเบเบซเบเปเบฒเบงเบฝเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ.
เบเบฑเปเบเบเบญเบเบเปเปเปเบเปเบกเปเบเบเบฒเบเปเบเบตเปเบก เบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ's. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, GitLab เบเปเบฒเบเบปเบ 5 เบเบฑเปเบเบเบญเบ:
.pre
- เบเบฐโเบเบดโเบเบฑเบโเปเบเบดเบโเบเบธเบโเบเบฑเปเบโเบเบญเบโ,.post
- เบเบฐโเบเบดโเบเบฑเบโเบซเบผเบฑเบโเบเบฒเบโเปเบฅโเบเบฐโเบเบฑเบโเบซเบกเบปเบโ,build
- เบเปเบฒเบญเบดเบเบซเบผเบฑเบเบเบฒเบ.pre
เปเบงเบเบต,test
- เปเบฅโเบเบฐโเบเบตโเบชเบญเบโ,deploy
- เบเบฑเปเบโเบเบญเบโเบเบตโเบชเบฒเบกโ.
เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเปเปเบกเบตเบซเบเบฑเบเบเบฑเบเบเบงเบฒเบเบเปเบฒเบเบเบฒเบเบเบฒเบเบเบฐเบเบฒเบเบเบงเบเบกเบฑเบเบขเปเบฒเบเบเบฐเปเบเปเบ. เบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฑเปเบเบเบญเบเบเบทเบเบฅเบฐเบเบธเปเบงเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเบเบทเบเบเบฐเบเบดเบเบฑเบ. เปเบเบทเปเบญเบเบงเบฒเบกเบชเบปเบกเบเบนเบ, เปเบซเปเบเบทเปเบกเปเบชเปเบเบฒเบเบเบฑเปเบเบเปเบฒ:
stages:
- build
- test
- deploy
เบชเปเบฒเบฅเบฑเบเบเบฒเบ debugging, เบกเบฑเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบงเบฝเบเบเบฒเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ. เปเบซเปเปเบเบตเปเบกเบเบธเบเบเปเบฒเบชเบฑเปเบเบเบปเปเบงเปเบฅเบเบเบตเปเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบงเบฝเบเปเบเปเบฅเบฐเบเบปเบ before_script
:
before_script:
- $PSVersionTable.PSVersion
- dotnet --version
- nuget help | select-string Version
เบกเบฑเบเบเบฑเบเบเบปเบเบเบตเปเบเบฐเปเบเบตเปเบกเบขเปเบฒเบเบซเบเปเบญเบเบซเบเบถเปเบเบซเบเปเบฒเบงเบฝเบเปเบเบทเปเบญเบงเปเบฒเปเบกเบทเปเบญเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบทเบเบชเบปเปเบ, เบเปเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบ. เบเบญเบเบเบตเป, เปเบซเปเปเบเบตเปเบกเปเปเบฒเบงเบฝเบเบซเบงเปเบฒเบเปเบเบปเปเบฒเปเบเบทเปเบญเบชเบฐเปเบเบ:
dummy job:
script:
- echo ok
เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเบงเบเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเปเปเบเบงเบฒเบกเบงเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเบต, เบเบงเบเปเบฎเบปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบนเป, เบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบเบปเบเปเบเปเบฎเบฑเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป ... เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ script - bash: .PSVersion: command not found
. wtf?
เบเบธเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ - เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบนเปเปเบฅเปเบ (เบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเบฐเบเบฃเบดเบเปเปเบฒเบงเบฝเบ เปเบฅเบฐเบชเบฐเปเบญเบเปเบซเปเปเบเบ GitLab) เปเบเป bash
เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบเบฒเบเบฅเบฐเบเบธเบขเปเบฒเบเบเบฐเปเบเปเบเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเปเบฒเบงเบฝเบเบงเปเบฒเปเบเบฑเบเปเบเบเบตเปเบเบฑเบเปเบฅเปเบเบเปเปเบชเบปเปเบเบเบฐเบเบดเบเบฑเบเบเบงเบเบกเบต:
dummy job on windows:
script:
- echo ok
tags:
- windows
เบเบดเปเบเปเบซเบเป! เบเปเปเบเบตเปเบเบณเบฅเบฑเบเปเบฅเปเบเบขเบนเป.
เบเบนเปเบญเปเบฒเบเบเบตเปเปเบญเบปเบฒเปเบเปเบชเป, เปเบเปเปเบฎเบฑเบเบเปเปเบฒเบเบฑเปเบเบเบญเบเบเบตเปเบเบตเปเปเบซเปเปเบซเบฑเบ, เบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเปเบฒเบงเบฝเบเบเบฒเบเปเบเปเบเบทเบเบชเปเบฒเปเบฅเบฑเบเปเบเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ test
, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบฅเบฐเบเบธเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ. เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบญเบฒเบเบเบฐเปเบเบปเบฒเปเบเป test
เปเบกเปเบเบเบฑเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ.
เปเบซเปเบชเบทเบเบเปเปเบชเปเบฒเบเปเบเบเบเบฐเบเบนเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบเบเบฒเบเปเบเบตเปเบกเบซเบเปเบฒเบงเบฝเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเบเปเบฒเบเปเบเบดเบ:
build job:
script:
- echo "building..."
tags:
- windows
stage: build
test and cover job:
script:
- echo "running tests and coverage analysis..."
tags:
- windows
stage: test
pack and deploy job:
script:
- echo "packing and pushing to nuget..."
tags:
- windows
stage: deploy
pages:
script:
- echo "creating docs..."
tags:
- windows
stage: deploy
เบเบงเบโเปเบฎเบปเบฒโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเปเปโเปเบเบฑเบโเบเบฐโเปเบซเบเบโเปเบเบโเบชเบฐโเปเบเบฒเบฐโเปเบกเปเบโ, เปเบเปโเบขเปเบฒเบโเปเบโเบเปโเบเบฒเบกโเบเปเปโเบเบตเปโเบเบทเบโเบเปเบญเบโ.
เบเบฒเบเบเบฑเปเบเบเปเบฒ triggers
เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเบฒเบเบเบฑเปเบเบเบญเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบเปเปเปเบเปเบเบทเบเบเปเบฒเบเบปเบเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเปเบเบซเบเบถเปเบ, เบเปเปเบเบฐ เบขเปเบฒเบเปเบเบฑเบกเบเบตเป เบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเบเบธเบเบเบฑเปเบเบเบตเปเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบทเบ pushed เบเบฑเบ repository. เปเบเบทเปเบญเบเบเบฒเบเบเบตเปเบเปเปเปเบกเปเบเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบเบเบปเปเบงเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเปเบเบเปเบฒเบเบปเบงเบเบญเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบงเบฝเบเบเบฒเบ.
เบเบฒเบเบเบฑเปเบเบเบญเบเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบชเบญเบเบฎเบนเบเปเบเบ: only/except
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบ triggers (merge_request
, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ - เบเปเบฒเบเบปเบเบงเบฝเบเบเบฒเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบเบเบธเบเบเบฑเปเบเบเบตเปเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐเบเบธเบเบเบฑเปเบ commits เบเบทเบเบชเบปเปเบเปเบเบซเบฒเบชเบฒเบเบฒเบเบตเปเปเบเบฑเบเปเบซเบผเปเบเปเบเบเปเบฒเบฎเปเบญเบเบเป merge) เปเบฅเบฐเบเบทเปเบชเบฒเบเบฒ (เบฅเบงเบกเบเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบด); rules
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฑเบเปเบเปเบเบเบธเบเบเบญเบเปเบเบทเปเบญเบเปเบเปเบฅเบฐ, เบเบฒเบเปเบฅเบทเบญเบ, เบเปเบฝเบเปเบเบทเปเบญเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบงเบฝเบเบเบฒเบเปเบเบเบญเบตเบเบเบฒเบกเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบตเปเบเปเบฒเบเบกเบฒ (when
เปเบ GitLab CI/CD
เบเปเปเบซเปเบเบทเปเบเปเบฒเบเบธเบเบเบญเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบ - เบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบ, เบเบฒเบเบซเบธเปเบกเบซเปเปเปเบฅเบฐเบเบฒเบเบชเบปเปเบเบเบฑเบ Azure DevOps - เบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบฅเบงเบกเปเบฅเบฐ pushes เบเบฑเบเปเบกเปเบเบปเบ, เบเบฒเบเบเบฐเบฅเบดเบเปเบญเบเบฐเบชเบฒเบ - เบชเปเบฒเบฅเบฑเบเบเบฒเบ pushes เบเบฑเบเปเบกเปเบเบปเบ.
เบเปเบฒเบญเบดเบ, เปเบซเปเบเบฑเปเบเบเปเบฒเบงเบฝเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเปเบซเบกเปเบเบฝเบเปเบเปเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบฒเบเบฅเบงเบก:
build job:
# snip
only:
- merge_request
เบเบฝเบงเบเบตเป, เปเบซเปเบเบฑเปเบเบเปเบฒเบงเบฝเบเบเบฒเบเบเบฒเบเบซเบธเปเบกเบซเปเปเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบฅเบงเบกเปเบฅเบฐเปเบเบตเปเบกเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฑเบเปเบกเปเบเบปเบ:
pack and deploy job:
# snip
only:
- merge_request
- master
เบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบเบปเบเปเบเบเบปเบเบกเบฒ.
เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบซเบเปเบฒเบงเบฝเบเบเบตเปเบเบฐเปเบเปเบเปเบเบฝเบเปเบเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเบเบฑเบเปเบเบปเปเบฒเบซเบกเบฒเบเบชเบฐเปเบเบฒเบฐเปเบเบซเบเบถเปเบเบซเบผเบทเบชเบฒเบเบฒเปเบซเบผเปเบ:
rules:
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"
เบเบฒเบเปเบเปเปเบเบทเปเบญเบเปเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป rules
เบเบฑเบเบเบฑเบเบเบปเบเบฅเบฐเบเบฝเบ only/except
.
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบฐเบซเบเบฑเบ Artifact
เปเบเบฅเบฐเบซเบงเปเบฒเบเบงเบฝเบเบเบฒเบ build job
เบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบกเบตโเบเบฒเบโเบเปเปโเบชเปเบฒเบโเบเบญเบโเบเบญเบกโเบเบตเปโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเปโเบเบทเบโเปเบซเบกเปโเปเบโเบงเบฝเบโเบเบฒเบโเบเปเปโเปเบโ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเปเบชเบฑเปเบเบเบฒเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบเปเบฒเบงเบฝเบ, เปเบเบฅเปเบเบตเปเปเบเบปเปเบฒเบเบฐเบเปเบญเบเบเบฑเบเบเบถเบเปเบฅเบฐเปเบเปเบเบทเบเปเบซเบกเปเปเบเบซเบเปเบฒเบงเบฝเบเบเปเปเปเบเบเบตเป, เปเบเบซเบฒเบเบตเปเบชเปเบฒเบเบฑเบ. artifacts
build job:
# snip
artifacts:
paths:
- path/to/build/artifacts
- another/path
- MyCoolLib.*/bin/Release/*
Paths เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ wildcards, เปเบเบดเปเบเปเบเปเบเบญเบเปเบฎเบฑเบเปเบซเปเบเบงเบเปเบเบปเบฒเบเปเบฒเบเบเปเปเบเบฒเบเบเบฑเปเบเบเปเบฒ.
เบเปเบฒเบงเบฝเบเบเบฒเบเบซเบเบถเปเบเบชเปเบฒเบเบชเบดเปเบเบเบฐเบเบดเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเปเบฅเบฐเบงเบฝเบเบเบฒเบเบเปเปเบกเบฒเบเบฐเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบงเบเบกเบฑเบเปเบเป - เบเบงเบเบกเบฑเบเบเบฐเบเบฑเปเบเบขเบนเปเบเบฒเบกเปเบชเบฑเปเบเบเบฒเบเบเบฝเบงเบเบฑเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบฎเบฒเบเบเบญเบ repository เบเบตเปเปเบเบฑเบเบเปเบฒเบเบฒเบเบงเบฝเบเบเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบ. เบชเบดเปเบเบเบฐเบเบดเบเบเบฑเบเบกเบตเปเบซเปเบเบฒเบงเปเบซเบผเบเบขเบนเปเปเบเปเบงเบฑเบเปเบ.
เบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบก (เปเบฅเบฐเบเบปเบเบชเบญเบ), เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฝเบ scripts เบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบปเบงเบเบดเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฝเบเบชเบฐเบเบดเบ
เบเบฒเบเบเบต, เปเบเบเบฑเปเบเบซเบเบถเปเบ, เปเบ galaxy เปเบ, เบซเปเบฒเบเปเบ, เปเบเบเบเบฒเบเบเปเปเบชเปเบฒเบ (เบฅเบงเบกเบเบฑเบเบขเบนเปเปเบ .net) เบเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเปเบกเปเบเปเบเบฑเบเบเบงเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบ, เบเบปเบเบชเบญเบเปเบฅเบฐเปเบเบตเบเปเบเปเปเบเบเบเบฒเบเปเบ 3 เบเบตเบก:
dotnet build
dotnet test
dotnet pack
เบเบฒเบกเบเปเบฒเบกเบฐเบเบฒเบ, เบกเบตเบเบฒเบ nuances เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐ complicate เบเปเบฒเบชเบฑเปเบเบเบฒเบเบขเปเบฒเบ.
- เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฒเบเบชเปเบฒเบเบเบฒเบเบเปเบญเบ, เบเปเปเปเบกเปเบเบเบฒเบเบชเปเบฒเบ debug, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเปเบชเปเปเบเปเบฅเบฐเบเปเบฒเบชเบฑเปเบ
-c Release
- เปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบปเบเบชเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฒเบเบเบปเบเบชเบญเบ:
- เปเบเบตเปเบกเบเบธเบเปเบชเปเบซเปเบญเบเบชเบฐเปเบธเบเบเบปเบเบชเบญเบเบเบฑเบเปเบปเบ
coverlet.msbuild
:dotnet add package coverlet.msbuild
เบเบฒเบเปเบเบเปเบเบตเปเบเบเบเบฒเบ - เปเบเบตเปเบกเปเบชเปเบเปเบฒเบชเบฑเปเบเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบ
/p:CollectCoverage=true
- เปเบเบตเปเบกเบเบฐเปเบเปเบชเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเปเบฒเบงเบฝเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเบทเปเบญเปเบซเปเปเบเปเบเบปเบเบเบฒเบเบเบญเบเบเบธเบก (เปเบเบดเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป)
- เปเบเบตเปเบกเบเบธเบเปเบชเปเบซเปเบญเบเบชเบฐเปเบธเบเบเบปเบเบชเบญเบเบเบฑเบเปเบปเบ
- เปเบกเบทเปเบญเบเบฑเบเบเบธเบฅเบฐเบซเบฑเบเปเบเบปเปเบฒเปเบเปเบเบเบธเบ nuget, เบเปเบฒเบเบปเบเบฅเบฒเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบชเปเบฒเบฅเบฑเบเบเบธเบ:
-o .
เปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบ
เบซเบผเบฑเบเบเบฒเบเปเบฅเปเบเบเบฒเบเบเบปเบเบชเบญเบ, Coverlet prints เปเบฅเปเบเบชเบฐเบเบดเบเบดเปเบเบซเบฒ console:
Calculating coverage result...
Generating report 'C:Usersxxxsourcereposmy-projectmyProject.testscoverage.json'
+-------------+--------+--------+--------+
| Module | Line | Branch | Method |
+-------------+--------+--------+--------+
| project 1 | 83,24% | 66,66% | 92,1% |
+-------------+--------+--------+--------+
| project 2 | 87,5% | 50% | 100% |
+-------------+--------+--------+--------+
| project 3 | 100% | 83,33% | 100% |
+-------------+--------+--------+--------+
+---------+--------+--------+--------+
| | Line | Branch | Method |
+---------+--------+--------+--------+
| Total | 84,27% | 65,76% | 92,94% |
+---------+--------+--------+--------+
| Average | 90,24% | 66,66% | 97,36% |
+---------+--------+--------+--------+
GitLab เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบฅเบฐเบเบธเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบดเปเบเบทเปเบญเปเบซเปเปเบเปเบฎเบฑเบเบชเบฐเบเบดเบเบด, เปเบเบดเปเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเปเบเบฎเบนเบเปเบเบเบเบญเบ badge. เบเบฒเบเบชเบฐเปเบเบเบเบปเบเบเบปเบเบเบฐเบเบดเปเบกเปเบเบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเปเบฒเบงเบฝเบเบเปเบงเบเบเบธเปเบกเบเบปเบ coverage
; เบเบฒเบเบชเบฐเปเบเบเบเบปเบเบเปเบญเบเบกเบตเบเบธเปเบก capture, เบกเบนเบเบเปเบฒเบเบตเปเบเบฐเบเบทเบเบชเบปเปเบเปเบเบซเบฒ badge:
test and cover job:
# snip
coverage: /|s*Totals*|s*(d+[,.]d+%)/
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบชเบฐเบเบดเบเบดเบเบฒเบเปเบชเบฑเปเบเบเบตเปเบกเบตเบเบฒเบเบเบธเปเบกเบเบญเบเปเบชเบฑเปเบเบเบฑเบเบซเบกเบปเบ.
เปเบเบตเบเปเบเปเปเบเบฑเบเปเบเบ เปเบฅเบฐเปเบญเบเบฐเบชเบฒเบ
เบเบฑเบเบชเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบกเปเบเบเปเบฒเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบฑเปเบเบเบญเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเปเป - เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบเปเบฒเบเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเปเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบฅเบ.
เบเปเบฒเบญเบดเบ, เบเบดเบเบฒเบฅเบฐเบเบฒเบเบฒเบเปเบเบตเบเปเบเปเบเบฑเบเปเบซเบผเปเบเบเบธเบ:
-
เบเปเบฒเปเบเบเบเบฒเบเบเปเปเบกเบตเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ nuget (
nuget.config
), เบชเปเบฒเบเบญเบฑเบเปเบซเบกเป:dotnet new nugetconfig
เปเบเบทเปเบญโเบซเบเบฑเบ: เบฎเบนเบโเบเบฒเบโเบญเบฒเบโเบเบฐโเบเปเปโเบกเบตโเบเบฒเบโเบเบฝเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเบปเปเบงโเปเบฅเบ (เบเบนเปโเปเบเปโเปเบฅเบฐโเปเบเบทเปเบญเบโ)โ. เปเบเบทเปเบญเบเปเปเปเบซเปเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบชเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบเบเบดเปเบเปเบซเบกเปเปเบฅเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบกเบฑเบ.
- เบกเบฒเปเบเบตเปเบกเปเบซเบผเปเบเปเบเบฑเบเปเบเบเปเปเปเปเบชเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบญเบเบเบดเปเบ:
nuget sources add -name <name> -source <url> -username <organization> -password <gitlab variable> -configfile nuget.config -StorePasswordInClearText
name
- เบเบทเปเปเบซเบผเปเบเบเปเบญเบเบเบดเปเบ, เบเปเปเบชเปเบฒเบเบฑเบurl
- URL เบเบญเบเปเบซเบผเปเบเบเปเปเบกเบนเบเบเบฒเบเบเบฑเปเบเบเบญเบ "เบเบฒเบเบเบฐเบเบฝเบกเบเบฑเบเบเบต", เบซเบเปเบฒ 6organization
- เบเบทเปเบญเบปเบเบเบฒเบเบเบฑเบเบเบฑเปเบเปเบ Azure DevOpsgitlab variable
- เบเบทเปเบเบญเบเบเบปเบงเปเบเบเบตเปเบกเบต token เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบตเปเปเบเบตเปเบกเปเบชเป GitLab ("เบเบฒเบเบเบฐเบเบฝเบกเบเบฑเบเบเบต", เบซเบเปเบฒ 11). เบเบฒเบกเบเปเบฒเบกเบฐเบเบฒเบ, เปเบเบฎเบนเบเปเบเบ$variableName
-StorePasswordInClearText
- hack เปเบเบทเปเบญโเบเปเบฒเบกโเบเบฒเบโเปเบเบปเปเบฒโเปเบเบดเบโเบเปเปโเบเบดเบโเบเบฒเบโเบเบทเบโเบเบฐโเบเบดโเปเบชเบ (เบเปเบญเบเบเปเปเปเบกเปเบเบเบปเบเบเบณเบญเบดเบเบเบตเปเบเบฐเบเปเบฒเบงเบเบถเปเบเบเปเบญเบเบเบตเป )- เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เบกเบฑเบเบญเบฒเบเบเบฐเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบฐเปเบเบตเปเบก
-verbosity detailed
- เบเบฒเบเบชเบปเปเบเบเบธเบเปเบเบซเบฒเปเบซเบผเปเบ:
nuget push -source <name> -skipduplicate -apikey <key> *.nupkg
- เบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบเบธเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเบเบธเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบ
*.nupkg
. name
- เบเบฒเบเบเบฑเปเบเบเบญเบเบเปเบฒเบเปเบเบดเบ.key
- เบชเบฒเบเปเบ. เปเบ Azure DevOps, เบขเบนเปเปเบเบเปเบญเบเบขเปเบฝเบก Connect to feed, เบเบปเบงเบขเปเบฒเบเปเบกเปเบเปเบชเบฑเปเบเบชเบฐเปเบซเบกเบตaz
.-skipduplicate
- เปเบกเบทเปเบญเบเบฐเบเบฒเบเบฒเบกเบชเบปเปเบเบเบธเบเบเบตเปเบกเบตเบขเบนเปเปเบฅเปเบงเปเบเบเบเปเปเบกเบตเบเบฐเปเบเบเบตเป, เปเบซเบผเปเบเบเบตเปเบกเบฒเบเบฐเบชเบปเปเบเบเบทเบเบเปเปเบเบดเบเบเบฒเบ409 Conflict
; เบเปเบงเบเบเบฐเปเบ, เบเบฒเบเบชเบปเปเบเบเบฐเบเบทเบเบเปเบฒเบกเปเบ.
- เบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบเบธเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเบเบธเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบ
เบเบญเบเบเบตเปเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฑเปเบเบเปเบฒเบเบฒเบเบชเปเบฒเบเปเบญเบเบฐเบชเบฒเบ:
- เบเปเบฒเบญเบดเบ, เปเบ repository, เปเบเบชเบฒเบเบฒเบเบปเปเบเบชเบฐเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบเบฒเบ docfx. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบฒเบเบฎเบฒเบ
docfx init
เปเบฅเบฐเปเบเปเบเบญเบเบเปเบฒเบเบปเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบตเปเบชเปเบฒเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเปเบญเบเบฐเบชเบฒเบ. เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบเบเบฒเบเบเปเบฒเปเบชเบธเบเบเบตเปเบเบตเปเบเบตเป .- เปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบซเบเบปเบเบเปเบฒ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบฅเบฐเบเบธเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบปเบเบเบฐเบฅเบดเบ
..public
- GitLab เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฐเปเบญเบปเบฒเปเบเบทเปเบญเปเบเบเบญเบเปเบเบเปเบเบตเบชเบฒเบเบฒเบฅเบฐเบเบฐเบขเบนเปเปเบเบฎเบฒเบเบเบญเบ repository เปเบเบฑเบเปเบซเบผเปเบเบชเปเบฒเบฅเบฑเบ Pages. เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒเบงโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเปเบโเบขเบนเปโเปเบโเปเบเบโเปเบเบตโเบเบตเปโเบเบฑเปเบโเบขเบนเปโเปเบ repository - เปเบเบตเปเบกโเบเบปเบโเบเบฐโเบฅเบดเบโเปเบโเบฅเบฐโเบเบฑเบโเบเบถเปเบโเปเบโเปเบชเบฑเปเบโเบเบฒเบโ.
- เปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเบซเบเบปเบเบเปเบฒ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบฅเบฐเบเบธเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบปเบเบเบฐเบฅเบดเบ
- เปเบซเปเบเบธเบเบเบนเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฑเบ GitLab.
- เปเบเบตเปเบกเปเปเบฒเบงเบฝเบเปเบชเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเป
pages
(เบเปเบฒเบชเบฐเบซเบเบงเบเปเบงเปเบชเปเบฒเบฅเบฑเบเบงเบฝเบเบเบฒเบเบเบฒเบเปเบเบตเบเปเบเปเปเบงเบฑเบเปเบเบเปเปเบ GitLab Pages):- เบชเบฐเบเบฃเบดเบ:
nuget install docfx.console -version 2.51.0
- เบเบดเบเบเบฑเปเบ docfx; เบชเบฐเบเบฑเบเปเบเปเบเบทเบเบฅเบฐเบเบธเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบฑเบเปเบเบฑเบเบเบทเบเบเปเบญเบ..docfx.console.2.51.0toolsdocfx.exe .docfx_projectdocfx.json
- เบเบฒเบโเปเบเบฑเบโเบเปเบฒโเปเบญโเบเบฐโเบชเบฒเบโ
- Node artifacts:
- เบชเบฐเบเบฃเบดเบ:
pages:
# snip
artifacts:
paths:
- public
เบเบฒเบเบซเบเปเปเบเปเปเบเบญเบเปเบเบทเปเบญเปเบเบเบเปเบฝเบงเบเบฑเบ docfx
เบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบกเบทเปเบญเบเบฑเปเบเปเบเบเบเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบฅเบฐเบเบธเปเบซเบผเปเบเบฅเบฐเบซเบฑเบเบชเปเบฒเบฅเบฑเบเปเบญเบเบฐเบชเบฒเบเปเบเบฑเบเปเบเบฅเปเบเบฒเบเปเบเปเปเบ. เบเปเปเปเบชเบเบเบฝเบเบเบปเปเบเบเปเปเบกเปเบเบงเปเบฒเปเบญเบเบฐเบชเบฒเบเบเบฑเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบปเบเบชเบญเบ. เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโเบเปเปโเบเปเบฒโเปเบเบฑเบโ, เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเบเบปเบโเบเปเบฒโเบเบตเปโเบเบฑเบ node เปเบเปโ metadata.src
:
{
"metadata": [
{
"src": [
{
"src": "../",
"files": [
"**/*.csproj"
],
"exclude":[
"*.tests*/**"
]
}
],
// --- snip ---
},
// --- snip ---
],
// --- snip ---
}
metadata.src.src: "../"
- เบเบงเบโเปเบฎเบปเบฒโเปเบโเปเบโเบฅเบฐโเบเบฑเบโเบซเบเบถเปเบโเบเปเบฝเบงโเบเบฑเบโเบชเบฐโเบเบฒเบโเบเบตเปโdocfx.json
, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ เปเบโเบฎเบนเบโเปเบเบโ, เบเบฒเบโเบเบญเบโเบซเบฒโเบเบปเปเบโเปเบกเปโเบฅเบฐโเบเบปเบโเบเปเปโเปเบเปโเปเบฎเบฑเบโเบงเบฝเบโ.metadata.src.files: ["**/*.csproj"]
- เบฎเบนเบเปเบเบเบเบปเปเบงเปเบฅเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเบฒเปเบเบเบเบฒเบ C # เบเบฑเบเบซเบกเบปเบเบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฑเบเบซเบกเบปเบ.metadata.src.exclude: ["*.tests*/**"]
- เบฎเบนเบเปเบเบเบเบปเปเบงเปเบฅเบ, เบเบปเบเปเบงเบฑเปเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฒเบเปเบเบเปเบเบตเบเบตเปเบกเบต.tests
เปเบเบซเบปเบงเบเปเป
Subtotal
เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบเปเปเบเปเบงเบฅเบฒเบเบฝเบเปเบเปเปเบเบดเปเบเบเบปเปเบงเปเบกเบเปเบฅเบฐเบชเบญเบเบชเบฒเบกเบเบญเบเบเบฒเปเบ, เปเบเบดเปเบเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบงเบเปเบเบดเปเบเบงเปเบฒเบฅเบฐเบซเบฑเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเบเปเบฒเบ, เบชเปเบฒเบเบเบธเบเปเบซเบกเป, เบเบฑเบเบเบธเบเปเบญเบเบฐเบชเบฒเบเปเบฅเบฐเบเบฐเบฅเบธเบเบฒเบเบฒเบเบตเปเบชเบงเบเบเบฒเบก. badges เปเบ README เบเบญเบโเปเบเบโเบเบฒเบโเบเบตเปโเบกเบตโเปเบเปโเบฅเบฐโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบฅเบงเบกโเปเบฅเบฐโเบชเบปเปเบโเปเบซเปโเปเบกเปโเบเบปเบโ.
เบชเบธเบเบเปเบฒเบ .gitlab-ci.yml
image: mcr.microsoft.com/dotnet/core/sdk:3.1
before_script:
- $PSVersionTable.PSVersion
- dotnet --version
- nuget help | select-string Version
stages:
- build
- test
- deploy
build job:
stage: build
script:
- dotnet build -c Release
tags:
- windows
only:
- merge_requests
- master
artifacts:
paths:
- your/path/to/binaries
test and cover job:
stage: test
tags:
- windows
script:
- dotnet test -c Release /p:CollectCoverage=true
coverage: /|s*Totals*|s*(d+[,.]d+%)/
only:
- merge_requests
- master
pack and deploy job:
stage: deploy
tags:
- windows
script:
- dotnet pack -c Release -o .
- dotnet new nugetconfig
- nuget sources add -name feedName -source https://pkgs.dev.azure.com/your-organization/_packaging/your-feed/nuget/v3/index.json -username your-organization -password $nugetFeedToken -configfile nuget.config -StorePasswordInClearText
- nuget push -source feedName -skipduplicate -apikey az *.nupkg
only:
- master
pages:
tags:
- windows
stage: deploy
script:
- nuget install docfx.console -version 2.51.0
- $env:path = "$env:path;$($(get-location).Path)"
- .docfx.console.2.51.0toolsdocfx.exe .docfxdocfx.json
artifacts:
paths:
- public
only:
- master
เปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเปเบฒเบ
เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบงเบเปเบเบปเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบเปเปเบฅเบตเปเบกเบเบปเปเบ!
เบเปเบฒเบเบเบตเปเบกเบตเบชเบฐเบเบฒเบเบฐเบเปเป เปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบเปเบกเปเบเบกเบตเบขเบนเปเปเบ GitLab เปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ CI/CD เปเบเบเบฅเบฑเบญเบเบเปเป Gtntral:
เบเปเบญเบเบชเปเบฒเบเบเปเบฒเบเบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบญเบเบฐเบชเบฒเบเปเบเปเบงเบเบต
![ะัะธะผะตั ั Shields.io](https://img.shields.io/badge/custom-badge-blue)
Azure DevOps Artifacts เบเบฑเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบ badges เบชเปเบฒเบฅเบฑเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบกเบตเบชเบฐเบเบฑเบเบซเบฅเปเบฒเบชเบธเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบเปเบซเบผเปเบเบเบตเปเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป Azure DevOps, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฅเบดเบเปเบชเป เบชเปเบฒเบ badge เบชเปเบฒเบฅเบฑเบเบเบธเบเบเบตเปเปเบฅเบทเบญเบเปเบฅเบฐเบเบฑเบเบฅเบญเบ markup markup:
เปเบเบตเปเบกเบเบงเบฒเบกเบเบฒเบก
เปเบเบฑเปเบเปเบชเปเบเบดเปเบเบชเปเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเปเบงเปเบ
เปเบเบเบฐเบเบฐเบเบตเปเบเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบฅเบฐเบเบฒเบเบเบปเปเบเบซเบฒเบเปเบฒเบเปเบญเบเบฐเบชเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบปเบเปเบซเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบเบญเบ YAML - reusing fragments .
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบซเบเปเบฒเบงเบฝเบ, เบเบงเบเปเบเบปเบฒเบเบฑเบเบซเบกเบปเบเบเปเบญเบเบเบฒเบเปเบเบฑเบ windows
เบขเบนเปเบเบตเปเบเบปเบงเปเบฅเปเบ, เปเบฅเบฐเบเบทเบเบเบฐเบเบธเปเบเปเบกเบทเปเบญเบกเบตเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบฅเบงเบกเบเบฑเบเบเบทเบเบชเบปเปเบเปเบเบซเบฒเปเบกเปเบเบปเบ / เบชเปเบฒเบ (เบเบปเบเปเบงเบฑเปเบเปเบญเบเบฐเบชเบฒเบ). เปเบซเปเปเบเบตเปเบกเบเบตเปเปเบชเปเบเบดเปเบเบชเปเบงเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบเบทเบ:
.common_tags: &common_tags
tags:
- windows
.common_only: &common_only
only:
- merge_requests
- master
เปเบฅเบฐเบเบญเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบชเปเบเบดเปเบเบชเปเบงเบเบเบตเปเบเบฐเบเบฒเบเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเปเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบซเบเปเบฒเบงเบฝเบ:
build job:
<<: *common_tags
<<: *common_only
เบเบทเปเบเบดเปเบเบชเปเบงเบเบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบธเบ, เปเบเบทเปเบญเบเปเปเปเบซเปเบเบทเบเบเบตเบเบงเบฒเบกเปเบฒเบเบงเปเบฒเปเบเบฑเบเปเปเบฒเบงเบฝเบ.
เบเบฒเบเบชเปเบฒเบเปเบเบฑเบเปเบเบ
เปเบกเบทเปเบญเบชเปเบฒเบเบเบธเบ, compiler เบเบงเบเปเบเบดเปเบเบเบฒเบเบเปเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเปเปเบกเบต, เปเบเบฅเปเปเบเบเบเบฒเบ; เปเบกเบทเปเบญเบกเบฑเบเบเบปเบเปเบงเบตเบเบฑเปเบ node, เบกเบฑเบเปเบเปเปเบงเบฅเบฒเบกเบนเบเบเปเบฒเบเบญเบเบกเบฑเบเปเบเบปเปเบฒเบเบฑเบเปเบงเบตเบเบฑเบเบเบญเบเปเบเบฑเบเปเบเบฑเบเบเบตเปเบเบทเบเบชเปเบฒเบเบเบถเปเบ. เบกเบฑเบเบเบฐเบเบปเบเบงเปเบฒเปเบเบทเปเบญเบชเปเบฒเบเบเบธเบเบเบตเปเบกเบตเบฎเบธเปเบเปเบซเบกเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฑเบเบเบธเบเบกเบฑเบเบขเบนเปเปเบเปเบเบฅเปเปเบเบเบเบฒเบเบซเบผเบทเบเปเบฒเบเบกเบฑเบเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ.
เบเปเปเบซเปเปเบเบตเปเบกเบฅเบฒเบเบเบฒเบเบเบตเปเบขเบฒเบเปเบเปเบญเบตเบเบญเบฑเบเปเบถเปเบ - เปเบซเปเบเบปเบงเปเบฅเบเบเปเบญเบเบชเบญเบเบเบปเบงเปเบฅเบเปเบเบฎเบธเปเบเปเบเบฑเบเบเบต เปเบฅเบฐเบงเบฑเบเบเบตเบชเปเบฒเบเบเบญเบเปเบเบฑเบเปเบเบฑเบ, เปเบฅเบฐเปเบเบตเปเบกเปเบงเบตเบเบฑเบเบเบตเปเบเปเบญเบเบญเบญเบเบกเบฒเบเปเบญเบ. เปเบเปเบเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเปเปเบกเบนเบเบเบตเปเปเบเบปเปเบฒเปเบเปเบเปเบเบฅเปเปเบเบเบเบฒเบเปเบฅเบฐเบเบงเบเปเบเบดเปเบเบเปเบญเบเบเบตเปเบเบฐเบชเบปเปเบเปเบเปเบฅเบฐเบเบฑเปเบ - เปเบเปเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบกเบฑเบเบขเบนเปเปเบเบเปเป, เปเบเบฑเบเบเปเบฒเบชเบฐเบเบฑเบเบเบญเบเบเบธเบเบเบฒเบเบชเบฐเบเบฒเบเบเบฒเบเปเบฅเบฐเบเปเบฒเบเบกเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบเปเบเปเบเบฝเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ.
เปเบซเปเบเบญเบเบเบปเบเบฅเบปเบเบเบฑเบเบงเปเบฒเบเปเบฒเบซเบฒเบเบงเปเบฒเบเปเปเบเบงเบฒเบกเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฐเบเบญเบเบเปเบงเบเปเบชเบฑเปเบเบเปเบฒเบเบเบท release (v./ver./version) <version number> (rev./revision <revision>)?
, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบญเบปเบฒเบชเบฐเบเบฑเบเบเบญเบเบเบธเบเบเบฒเบเปเบชเบฑเปเบเบเบตเป, เปเบชเบตเบกเบกเบฑเบเบเบฑเบเบงเบฑเบเบเบตเบเบฐเบเบธเบเบฑเบเปเบฅเบฐเบเปเบฒเบเบกเบฑเบเปเบเบฑเบเบเบฒเบเปเบเปเบเบฝเบเบเบฑเบเบเปเบฒเบชเบฑเปเบ. dotnet pack
. เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเปเบกเบตเบชเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเบฐเบเปเปเปเบเบฑเบเบเบธเบ.
เบชเบฐเบเบฃเบดเบเบเปเปเปเบเบเบตเปเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเป:
# ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต ะดะปั ะฟะพะธัะบะฐ ัััะพะบะธ ั ะฒะตััะธะตะน
$rx = "releases+(v.?|ver.?|version)s*(?<maj>d+)(?<min>.d+)?(?<rel>.d+)?s*((rev.?|revision)?s+(?<rev>[a-zA-Z0-9-_]+))?"
# ะธัะตะผ ัััะพะบั ะฒ ัะพะพะฑัะตะฝะธะธ ะบะพะผะผะธัะฐ, ะฟะตัะตะดะฐะฒะฐะตะผะพะผ ะฒ ะพะดะฝะพะน ะธะท ะฟัะตะดะพะฟัะตะดะตะปัะตะผัั
GitLab'ะพะผ ะฟะตัะตะผะตะฝะฝัั
$found = $env:CI_COMMIT_MESSAGE -match $rx
# ัะพะฒะฟะฐะดะตะฝะธะน ะฝะตั - ะฒัั
ะพะดะธะผ
if (!$found) { Write-Output "no release info found, aborting"; exit }
# ะธะทะฒะปะตะบะฐะตะผ ะผะฐะถะพัะฝัั ะธ ะผะธะฝะพัะฝัั ะฒะตััะธะธ
$maj = $matches['maj']
$min = $matches['min']
# ะตัะปะธ ัััะพะบะฐ ัะพะดะตัะถะธั ะฝะพะผะตั ัะตะปะธะทะฐ - ะธัะฟะพะปัะทัะตะผ ะตะณะพ, ะธะฝะฐัะต - ัะตะบััะธะน ะณะพะด
if ($matches.ContainsKey('rel')) { $rel = $matches['rel'] } else { $rel = ".$(get-date -format "yyyy")" }
# ะฒ ะบะฐัะตััะฒะต ะฝะพะผะตัะฐ ัะฑะพัะบะธ - ัะตะบััะธะต ะผะตััั ะธ ะดะตะฝั
$bld = $(get-date -format "MMdd")
# ะตัะปะธ ะตััั ะดะฐะฝะฝัะต ะฟะพ ะฟัะตัะตะปะธะทะฝะพะน ะฒะตััะธะธ - ะฒะบะปััะฐะตะผ ะธั
ะฒ ะฒะตััะธั
if ($matches.ContainsKey('rev')) { $rev = "-$($matches['rev'])" } else { $rev = '' }
# ัะพะฑะธัะฐะตะผ ะตะดะธะฝัั ัััะพะบั ะฒะตััะธะธ
$version = "$maj$min$rel.$bld$rev"
# ัะพะฑะธัะฐะตะผ ะฟะฐะบะตัั
dotnet pack -c Release -o . /p:Version=$version
เบเบฒเบเปเบเบตเปเบกเบชเบฐเบเบฃเบดเบเปเบชเปเปเปเบฒเบงเบฝเบ pack and deploy job
เปเบฅเบฐเบชเบฑเบเปเบเบเปเบเบดเปเบเบเบฒเบเบเบฐเบเบญเบเบเบญเบเบซเบธเปเบกเบซเปเปเบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบเปเบเบเบตเปเบเบฐเบเบฑเบเบเบญเบเบชเบฒเบเบเบตเปเปเบซเปเบขเบนเปเปเบเบเปเปเบเบงเบฒเบกเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ.
เบฅเบงเบก
เบซเบผเบฑเบเบเบฒเบเปเบเปเปเบงเบฅเบฒเบเบฐเบกเบฒเบเปเบเบดเปเบเบเบปเปเบงเปเบกเบเบซเบผเบทเบซเบเบถเปเบเบเบปเปเบงเปเบกเบเปเบเบเบฒเบเบเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบฒเบเบเบตเบเบฑเบเปเบ powershell เบเปเบญเบเบเบดเปเบเปเบฅเบฐ, เบเบฒเบเบเบต, เบชเบญเบเบชเบฒเบกเบเบฒเบเปเบเบตเบเบเบปเบงเบเปเปเบชเปเบฒเปเบฅเบฑเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเปเบซเปเบงเบฝเบเบเบฒเบเบเบปเบเบเบฐเบเบดเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
เปเบเปเบเบญเบ, GitLab CI / CD เปเบกเปเบเบเบงเปเบฒเบเบเบงเบฒเบเปเบฅเบฐเบซเบผเบฒเบเบฎเบนเบเปเบเบเบซเบผเบฒเบเบเปเบงเบฒเบกเบฑเบเบญเบฒเบเบเบฐเปเบเบดเปเบเบเบทเบงเปเบฒเบซเบผเบฑเบเบเบฒเบเบญเปเบฒเบเบเบนเปเบกเบทเบเบตเป -
เบเบงเบเบซเบฒ, เบชเปเบฒเบ, เบเบปเบเบชเบญเบ, เบเบณเปเบเป, เปเบฅเบฐเบเบดเบเบเบฒเบกเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเปเบฒเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ
เปเบเบเบฑเบเบเบธเบเบฑเบเปเบเบเบเบฒเบเปเบกเปเบเบเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบ Azure, เบเบฒเบเบเปเบฒเปเบเป Pulumi เปเบฅเบฐเบเบฒเบเบเปเบฒเบเบปเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเบปเปเบฒเบซเบกเบฒเบ, เปเบเบดเปเบเบเบฐเบเบงเบกเปเบญเบปเบฒเปเบเบเบปเบเบเบงเบฒเบกเบเปเปเปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com