Skip to content

Added MS Azure Dev Ops CI integration#162

Merged
jason-watkins merged 14 commits intonasa:developfrom
JanC:ms-azure
Jun 8, 2019
Merged

Added MS Azure Dev Ops CI integration#162
jason-watkins merged 14 commits intonasa:developfrom
JanC:ms-azure

Conversation

@JanC
Copy link
Copy Markdown
Contributor

@JanC JanC commented May 26, 2019

Hi @jason-watkins ,
as discussed in ##160 this is a PR that adds a CI integration to build all platforms and release a XPlaneConnect.zip

The current setup has the following triggers

The current MS Azure setup uses my fork so in order to integrate it your repo you will need

  • Create a MS Azure account and setup a project
  • Create a GH token and update the azure-pipelines.yml as described here

Besides the azure-pipelines.yml, this PR updated also some source and project files and the main changes are

  • Use Microsoft Visual Studio 2017 (4b76897 and 4b76897)
  • All platforms output the compiled libraries to the same XPlaneConnect path fc478eb
  • I also removed the committed binaries to avoid distributing outdated ones by mistake
  • Smaller code changes that were causing compilation errors on the CI

JanC added 13 commits May 21, 2019 12:45
Use ARCHS_STANDARD  to avoid the error “The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture.”
The Visual Studio solution was not compiling
Too many warnings were generated when building a Release build making Travis job to fail because of too much output
AppVeyor recommends to set the default toolset
# Conflicts:
#	xpcPlugin/xpcPlugin/xpcPlugin.vcxproj
# Conflicts:
#	xpcPlugin/XPlaneConnect/64/win.xpl
#	xpcPlugin/XPlaneConnect/win.xpl
xcode

linux

linux + macos

linux + macos

removed branch filter

win tests

win tests

Test all platfroms

artifacts tests
All platforms produce a binary in
xpcPlugin/XPlaneConnect/
xpcPlugin/XPlaneConnect/64/
deploy stage

GH release test

trigger tags
- Added variables
- Added job decriptions
@jason-watkins
Copy link
Copy Markdown
Contributor

Okay, I think this pretty much all makes sense. I've created a project and given it a token. Do I need to do anything else in Azure like set up a pipeline, or is it just going to magically figure things out?

Also, what exactly goes here? Is this the name of the service connection I created or my Azure username?

@JanC
Copy link
Copy Markdown
Contributor Author

JanC commented Jun 2, 2019

Hi Jason,
this are the steps to follow to set up ms azure

  • Create a new Project e.g. XPlaneConnect
  • In the project, create a new Build Pipeline

Screenshot 2019-06-02 at 10 14 13

  • Chose GitHub as source and select your XPlaneConnect repo

Screenshot 2019-06-02 at 10 15 51

  • Select Existing Azure Pipelines YAML file, select your branch and set azure-pipelines.yml as path. Now the thing is that you will probably have to merge this PR in order to have the azure-pipelines.yml in your develop. If you prefer, you can create a temporary ms-develop branch and I will re-open this PR into that one which allow you to test it before merging to develop

  • Choose Run and the pipeline should now run on each new pull request or to any commit pushed if the branch starts with ms-. This is something configured at this place of the .yml file

Now about the xpcGitHubConnection: janc_gh. (Actually I've just renamed it to xpcGitHubConnection: xpc_gh) Each new pushed tag will also trigger a pipeline build followed with a draft release on GitHub. It appears that MS Azure needs another set of GitHub credentials for this.

To do this in MS Azure:

  • Go to the Project Settings

Screenshot_2019-06-02_at_10_46_44

  • Chose Service Connections

Screenshot_2019-06-02_at_10_39_12

  • Select new service connection and chose Github. The Connection Name is the parameter that is used in the .yaml file: xpcGitHubConnection: .

Screenshot_2019-06-02_at_11_11_49

@jason-watkins
Copy link
Copy Markdown
Contributor

Got it. It looks like I need to go ahead and merge this and then finish setting up the pipeline. It won't let me create the build pipeline until the yaml file exists. I'll go ahead and merge and reply to #160 if I run into any issues.

Thanks a lot for working on this!

@jason-watkins jason-watkins merged commit 1c082d7 into nasa:develop Jun 8, 2019
@JanC JanC deleted the ms-azure branch June 9, 2019 12:50
@JanC JanC mentioned this pull request Jun 13, 2019
jason-watkins added a commit that referenced this pull request Jul 20, 2019
* Minor improvements to the handling of landing gear by the SetGear and HandlePOSI functions

* sendPOSI command change (double for lat/lon/h) (#111)

* Updated POSI to use doubles for lat/lon/alt, as step size for floats was unacceptably large at high longitudes.

* Updated Java library for MATLAB, updated Java project, and updated Windows plugin binaries

* Rolled back Java version to 1.7 for MATLAB compatibility

* Update MessageHandlers.cpp

* Update DataManager.cpp

* Added pause functionality for individual a/c

Adds new cases such that:
0: Unpauses all a/c
1: Pauses all a/c
2: Switches case for all a/c
100:119: Pauses a/c 0:19
200:219: Unpauses a/c 0:19

Updates log messages.

Keeps the 0,1,2 arguments as they previously were.

* Finished individual pause functionality

* Update DataManager.cpp

* Updated flags to allow for individual pause commands

* Individual pause command documentation

* Updated flags to allow for individual pause commands

* Adding individual pause to documentation

* Updated flags to allow for individual pause commands

* Requested changes, cleaning

* Update CMakeLists.txt

Include "-fno-stack-protector" for linking and compiling for systems that do not have this have this flag as a default.

* Enabling AI after setting position (#118)

Previously, the code enabled the AI before setting the position of a/c, which negated its purpose.

* Updated XPlane SDK to version 2.1.3

* Resolve function ambiguity for std::abs on mac

Fixes #126

* Update copyright notice

* Update Windows binaries

* Update Linux binaries

* Update version numbers

* fix osx abs ambiguity (#142)

* fix indexing error (#143)

* Runway camera location control (#144)

* update ignore

* basics working

* set cam pos remotely

* log cam position

* keep default behaviour, if short view message is received

Compatibility with existing software

* all to tabs

* rename variable

* option to use camera direction fields

* Added UDP multicast for plugin discovery (#153)

* Added Timer

* Added UDPSocket::GetAddr

* Added MessageHandlers::SendBeacon()

* PoC of starting a timer on PluginEnable

* C++11

* Added Timer to xcode project

* C++11 in cmake

* added Timer to cmake

* use function pointer in Timer

* moved Timer to namespace

+ wait for thread to join when stopping the timer

* Windows: changed uint to unisgned short

* Windows: Added Timer.h/cpp to project

* GetAddr static

* Send xplane and plugin version with BECN

* SendBeacon with params

* fixed file copyrights

* Include functional

to fix Linux compile error

* review fixes

* Send plugin receive port in BECN

* review fixes

* Fixed tabs vs spaces indentations (#157)

* Java client BECN implementation (#155)

* Added MS Azure Dev Ops CI integration (#162)

* Do not build for i386 on macOS

Use ARCHS_STANDARD  to avoid the error “The i386 architecture is deprecated. You should update your ARCHS build setting to remove the i386 architecture.”

* Fixed missing include

The Visual Studio solution was not compiling

* Fixed isnan ambigious refernce

Ambigious reference when compiling on travis

https://stackoverflow.com/questions/33770374/why-is-isnan-ambiguous-and-how-to-avoid-it

* Set MSVC warning level to 3

Too many warnings were generated when building a Release build making Travis job to fail because of too much output

* Use default toolset for Visual Studio

AppVeyor recommends to set the default toolset

* #include <cstdint>

* Use MSVC ToolsVersion="14.0"

# Conflicts:
#	xpcPlugin/xpcPlugin/xpcPlugin.vcxproj

* Removed binaries from repository

# Conflicts:
#	xpcPlugin/XPlaneConnect/64/win.xpl
#	xpcPlugin/XPlaneConnect/win.xpl

* Added ms azure ci

xcode

linux

linux + macos

linux + macos

removed branch filter

win tests

win tests

Test all platfroms

artifacts tests

* output all binaries to ‘XPlaneConnect’

All platforms produce a binary in
xpcPlugin/XPlaneConnect/
xpcPlugin/XPlaneConnect/64/

* Added ms azure GH deploy

deploy stage

GH release test

trigger tags

* Clean up yml file

- Added variables
- Added job decriptions

* Ignore script to ignore .exp files

+ fixed output path

* Renamed ms azure GH connection

* Update service connection for azure pipeline

* Added Python3 compatible xpc client. (#156)

* Update Azure Pipelines service connection
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants