The next step is to create a .travis.yml file in the root of the repository. Example of my configuration file:
language: csharp mono: none dotnet: 3.1.4 solution: awstaghelper.sln install: - dotnet restore script: - dotnet build --configuration Release --runtime win-x64 --output win-x64 - dotnet build --configuration Release --runtime win-x86 --output win-x86 - dotnet build --configuration Release --runtime linux-x64 --output linux-x64 - dotnet build --configuration Release --runtime osx-x64 --output osx-x64 before_deploy: - zip -r9 win-x64.zip win-x64 - zip -r9 win-x86.zip win-x86 - zip -r9 linux-x64.zip linux-x64 - zip -r9 osx-x64.zip osx-x64 deploy: provider: releases api_key: $api_key file: - win-x64.zip - win-x86.zip - linux-x64.zip - osx-x64.zip skip_cleanup: true on: tags: true
Now let’s review the config.
Yml begins with the declaration of the programming language
is none because the .net core is used. And the last is the .net core version. In my case it is
dotnet: 3.1.4. You also need to specify the name of the solution
Next are the build steps. Step
install used to install the necessary dependencies.
dotnet restore is optional as in the latest versions of dotnet
restore the command is automatically called when
build. Because of this,
install can be completely removed.
script section there is a build of application. I call the
build command 4 times because I build for different OS: Windows, Linux, Mac. The operating system is indicated by the
--runtime key. A list of all runtime is available here.
--output key specifies in which directory to put binaries.
You can also add the
/p:PublishSingleFile=true key to get only one exe file as a result per OS. You can also add this key in the project settings in Visual Studio.
before_deploy section is called before the deployment to prepare the binary for release. At this stage, I make an archive with the binaries that I received after the builds for the each operating system.
deploy section I use the
releases provider which releases on github. List of all providers - docs.travis-ci.com. A github token is required for deployment. You can generate it on GitHub.
The key must be saved in the travis configuration of the project. To do this, go to the project on Travis. Open project/settings:
In Environment Variables you need to add the generated key:
file you need to specify which files should be deployed using the provider.
skip_cleanup: true must be
true so that travis does not clear whipped files before deployment.
on.tags: true means that the deployment run only on github tags.
Once the file is ready you need to make run changes to the master and the build will start automatically. But the deployment will not take place, because it trigger only on tags. On GitHub you need to create release for the desired repository. Once the release is done the build will run again, but this time with a deployment.
In Travis you can see the following result: