Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Conversation

@jcansdale
Copy link
Collaborator

@jcansdale jcansdale commented Nov 7, 2019

Migrate build system from AppVeyer to Azure Pipelines.

What this PR does

Every build will create artifacts suitable for installing locally and for inserting into the VS installer:

image

Getting started

Prerequisites

  • Visual Studio 2019
    • .NET desktop development workload
    • Visual Studio extension development workload
    • .NET Core cross platform development workload

How to build

  1. Register a new developer application in your profile
  2. Create an environment variable GitHubVS_ClientID with your Client ID
  3. Create an environment variable GitHubVS_ClientSecret with your Client Secret
    b75a2e63c6c5f06d224210d9d2257608f5d228c9
  4. Execute build.cmd

GitHub Essentials

Here be dragons

Unfortunately there's a bug in the experimental VSIX functionality (when installed from VS or with IsExperimental=true):
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/994859

This means that packages and assemblies from the experimental and original VSIX can be loaded at the same time (causing confusing and hard to track down errors). To avoid this, you can do the following:

  • Rename ...Common7\IDE\Extensions\GitHub\GitHub.16\GitHub.VisualStudio.16.pkgdef to .pkgdef_ (this avoids a duplicate binding path in EXP instance)

Testing the extension

You can now start building and installing GitHub Essentials using src\GitHub.VisualStudio.16.sln.

Be sure to test GitHub Essentials on its own and with GitHub for Visual Studio installed.

GitHub for Visual Studio installs for all users, which can make installing/uninstalling a pain. You can install for the current user (or just in the EXP instance) using the following extension:
https://github.com/jcansdale/DogfoodVsix

Fixes #2039

Build GHfVS and Essentials extension
This key is for identity not security.
Signed an unsigned assemblies can behave differently. It's important
that they're consistently signed when testing.
Users can set this up once and won't need to modify the
ApiClientConfiguration_User.cs file in their working directory.
Ensure that build will pick up changes to GitHubVS_ClientId.
Remove dependency on private script submodule
Use a matrix build strategy.
Create the VSIX directly in the ArtifactStagingDirectory.
@jcansdale jcansdale force-pushed the fixes/2039-port-build-to-azure-pipelines branch from be79993 to 738fc03 Compare November 7, 2019 10:48
@jcansdale jcansdale force-pushed the fixes/2039-port-build-to-azure-pipelines branch from b14dc04 to c5f0261 Compare November 7, 2019 12:26
@jcansdale jcansdale requested a review from a user November 12, 2019 11:08
@ghost
Copy link

ghost commented Nov 12, 2019

@jcansdale Can you remove the AppVeyor checks while you're at it?

@jcansdale
Copy link
Collaborator Author

Can you remove the AppVeyor checks while you're at it?

I'm hoping that when changes hit master, the AppVeyor checks will be gone. Let's see. 🤞

@jcansdale jcansdale merged commit c4add32 into master Nov 12, 2019
@jcansdale jcansdale deleted the fixes/2039-port-build-to-azure-pipelines branch November 12, 2019 23:42
@jcansdale
Copy link
Collaborator Author

I've disabled the AppVeyor webhook and given it a bump. Seems to be working now. 😄

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setup Azure Pipelines

2 participants