{"id":27894,"date":"2020-05-28T07:00:15","date_gmt":"2020-05-28T14:00:15","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=27894"},"modified":"2021-09-29T12:16:02","modified_gmt":"2021-09-29T19:16:02","slug":"continuous-integration-workflow-template-for-net-core-desktop-apps-with-github-actions","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/continuous-integration-workflow-template-for-net-core-desktop-apps-with-github-actions\/","title":{"rendered":"Continuous integration workflow template for .NET Core desktop apps with GitHub Actions"},"content":{"rendered":"<p>We know how time consuming it can be to quickly set up continuous integration and continuous deployment workflows (CI\/CD) for your WPF and Windows Forms desktop applications.<\/p>\n<p>That&#8217;s why, in cooperation with the GitHub Actions team, we have released <a href=\"https:\/\/github.com\/actions\/starter-workflows\/blob\/master\/ci\/dotnet-core-desktop.yml\" target=\"_blank\" rel=\"noopener noreferrer\">a\u00a0starter\u00a0workflow\u00a0in\u00a0GitHub<\/a> to help you quickly set up and showcase DevOps for your applications using the recently released <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub Actions<\/a>.<\/p>\n<p>With\u00a0GitHub\u00a0Actions,\u00a0you\u00a0can\u00a0quickly\u00a0and\u00a0easily\u00a0automate\u00a0your\u00a0software\u00a0workflows\u00a0with\u00a0CI\/CD.<\/p>\n<ul>\n<li>Integrate code changes directly into GitHub to speed up development cycles<\/li>\n<li>Trigger builds to quickly identify build breaks and create testable debug builds<\/li>\n<li>Continuously run tests to identify and eliminate bugs<\/li>\n<li>\n<div>\n<div>Automatically sign, package and deploy branches that pass tests<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The starter workflow template can be added directly to your project in a few simple steps, and with minimal configuration, allowing you to quickly set up a DevOps workflow in GitHub.<\/p>\n<p>Like the\u00a0<a href=\"https:\/\/github.com\/actions\/starter-workflows\/blob\/master\/ci\/dotnet-core.yml\" target=\"_blank\" rel=\"noopener noreferrer\">.NET\u00a0Core\u00a0starter\u00a0workflow\u00a0template<\/a>, this .NET Core Desktop template provides the commands to build and test your application on any of <a href=\"https:\/\/help.github.com\/en\/actions\/reference\/workflow-syntax-for-github-actions#jobsjob_idruns-on\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub&#8217;s available hosted runner types<\/a>, such as Windows, Mac OS or Ubuntu.<\/p>\n<p>However, the WPF .NE<span style=\"font-size: 1rem;\">T Core starter workflow takes things a few steps further. For example, in addition to providing the steps to build and test your app, this workflow template details the steps necessary to securely use your signing certificate in a GitHub continuous integration pipeline. Furthermore, with this template, you will be able to generate a package of your app for testing or release, by leveraging a\u00a0<\/span><a style=\"background-color: #f7f7f9; font-size: 1rem;\" href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/msix\/desktop\/desktop-to-uwp-packaging-dot-net\">Windows\u00a0Application\u00a0Packaging\u00a0Project<\/a><span style=\"font-size: 1rem;\">.<\/span><\/p>\n<p>To\u00a0add\u00a0the\u00a0workflow:<\/p>\n<ol>\n<li>Navigate to the &#8220;Actions&#8221; tab in your GitHub project.<\/li>\n<li>Click the &#8220;New workflow&#8221; button.<\/li>\n<li>Select &#8220;Set up this workflow&#8221; in the &#8220;.NET Core Desktop&#8221; workflow.<\/li>\n<li>Commit the file to your repo.<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"alignnone wp-image-28469\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2020\/06\/github-actions-workflow-template.jpg\" alt=\"Image github actions workflow template\" width=\"728\" height=\"547\" \/><\/p>\n<div>Once added to your repo, follow the instructions to configure the workflow for your project!<\/div>\n<div><\/div>\n<div>If you have any questions or feedback, please <a href=\"https:\/\/github.com\/actions\/starter-workflows\/issues\/new\" target=\"_blank\" rel=\"noopener noreferrer\">file issues on GitHub<\/a>.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to use a\u00a0starter\u00a0workflow\u00a0in\u00a0GitHub to help you quickly set up and showcase DevOps for your .NET Core desktop applications using GitHub Actions.<\/p>\n","protected":false},"author":20223,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,196,756,509],"tags":[4,9,6766,158],"class_list":["post-27894","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-dotnet-core","category-csharp","category-wpf","tag-net","tag-net-core","tag-ci","tag-wpf"],"acf":[],"blog_post_summary":"<p>Learn how to use a\u00a0starter\u00a0workflow\u00a0in\u00a0GitHub to help you quickly set up and showcase DevOps for your .NET Core desktop applications using GitHub Actions.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/20223"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=27894"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/27894\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=27894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=27894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=27894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}