Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create new release including "alpha" Linux support #173

Merged
merged 88 commits into from
Sep 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
56d161c
git: split out IGit and IGitConfiguration files
mjcheetham Jun 29, 2020
dc3ece0
which: add ability to locate executables via which
mjcheetham Jul 7, 2020
34ef9c6
git: implement IGit/Config using the Git CLI
mjcheetham Jul 7, 2020
314499e
install: update usage of Git config
mjcheetham Jul 7, 2020
edf4794
libgit2: remove libgit2 references
mjcheetham Jul 7, 2020
100148c
linux: add IFileSystem impl for Linux
mjcheetham Jul 9, 2020
19555a7
linux: use PosixSessionManager on Linux
mjcheetham Jul 9, 2020
9486edd
linux: implement stub Linux ISystemPrompts component
mjcheetham Jul 9, 2020
70e64fc
linux: add libsecret based ICredentialStore for Linux
mjcheetham Jul 9, 2020
097f7ab
versioning: update Nerdbank.GitVersioning to latest
mjcheetham Jul 9, 2020
ab661f5
linux: add x86_64 Linux build (Ubuntu 18.04)
mjcheetham Jul 9, 2020
522ac11
linux: rewrite libsecret/glib interop
mjcheetham Jul 13, 2020
cf5155f
tests: run libsecret tests
mjcheetham Jul 13, 2020
9eccd25
linux: add stub CredStore to select the best cred store API
mjcheetham Jul 14, 2020
dd0ac1a
tests: skip Libsecret tests that require a GUI
mjcheetham Jul 14, 2020
2928312
libsecret/secretservice: rename libsecret -> secretservice
mjcheetham Jul 14, 2020
622bd3c
actions/workflows: fix workflows and builds
mjcheetham Jul 17, 2020
cdc0dee
Merge pull request #150 from mjcheetham/fixworkflows
mjcheetham Jul 20, 2020
08863a6
homebrew: automatically update Homebrew Cask on release
mjcheetham Jul 21, 2020
5e57e79
Merge pull request #152 from mjcheetham/homebrew-auto
mjcheetham Jul 21, 2020
8a7eef8
github: make OAuth the default auth mode
mjcheetham Jun 15, 2020
d3fefff
github: move OAuth option to top of Windows dialog
mjcheetham Jul 27, 2020
0fdae3b
github: replace link with button for OAuth login
mjcheetham Jul 27, 2020
525d448
FAQ minor writing fix
dmodena Jul 30, 2020
2abe96d
Merge pull request #155: FAQ minor writing fix
derrickstolee Jul 30, 2020
8014b46
Merge pull request #153: Use OAuth by default on GitHub
derrickstolee Jul 30, 2020
4f3ddcd
Start ci actions yaml
Aug 6, 2020
a0a222a
Add linux branch and spacing
Aug 6, 2020
4fcc005
Fix typos in documentation
nightowlengineer Aug 6, 2020
6b72a6a
add '- name' for steps
Aug 6, 2020
4b7a5d9
Copy in default dotnet core workflow template steps
Aug 6, 2020
a9e53b3
Add fetch-depth: 0 so that Github actions clones with full history so…
kyle-rader Aug 7, 2020
578413b
Use with: for args to actions
kyle-rader Aug 7, 2020
0b05b47
Attempt using os matrix
kyle-rader Aug 7, 2020
9a26025
Spacing and use explicit ubuntu 20.04 version
kyle-rader Aug 7, 2020
fff72ef
Use shorter name so you can see os versions in Actions UI
kyle-rader Aug 7, 2020
44651b8
Use short workflow name so each job renders full name as "GCM-Core / CI"
kyle-rader Aug 7, 2020
33b45a3
Merge pull request #157: GitHub Actions Workflow
derrickstolee Aug 7, 2020
55403c8
Merge pull request #158: Fix some typos/errors in documentation
derrickstolee Aug 7, 2020
2e9919d
Merge pull request #159 from microsoft/linux
mjcheetham Aug 14, 2020
090d3c4
SettingsTests: drop unused variables
derrickstolee Sep 10, 2020
4c43d7b
GitConfiguration: be careful about key-value pairs
derrickstolee Sep 10, 2020
7c3a055
GitConfiguration: be careful about arguments and exit codes
derrickstolee Sep 10, 2020
9f9f8d4
Start a build-installers GH workflow
Sep 10, 2020
099b350
Add explicit framework
Sep 10, 2020
e03468b
Simplify Linux build script into just build.sh
kyle-rader Sep 10, 2020
9d67e3f
Add steps to create .deb package distro
kyle-rader Sep 10, 2020
2f2f90a
Build Linux.Payload specifically
kyle-rader Sep 10, 2020
57c30d9
Add pre build step
kyle-rader Sep 10, 2020
af514c7
Copy steps from working ci pipeline
kyle-rader Sep 10, 2020
7278801
Try also running tests
kyle-rader Sep 10, 2020
5aea589
Use force
kyle-rader Sep 10, 2020
3cc63f3
build with inherit restore
kyle-rader Sep 10, 2020
51089a2
Merge pull request #163: Fix errors with 'git-credential-manager-core…
derrickstolee Sep 11, 2020
eb8807b
CI: update configuration to build native bits
derrickstolee Sep 11, 2020
2a813f1
Clean up entire payload dir on build and publish deb and tar files.
kyle-rader Sep 11, 2020
3e56e9a
Only remove Payloud as Payload.Linux is built by the parent cs proj a…
kyle-rader Sep 11, 2020
1ceeb7b
Merge pull request #166 from derrickstolee/actions-native
mjcheetham Sep 14, 2020
f93dee0
Merge pull request #164 from kyle-rader/user/kyrader/linux-installer
Sep 14, 2020
1425412
credstore: update credstore API to allow better search
mjcheetham Sep 1, 2020
469a453
macoskeychain: update macOS Keychain to match new interface
mjcheetham Sep 1, 2020
bf9f51d
wincredmgr: update Windows CredManager to impl new interface
mjcheetham Sep 1, 2020
094ab39
wincredmgr: recover the correct service name
mjcheetham Sep 17, 2020
d4a1696
libsecret: update libsecret interop to match new interface
mjcheetham Sep 4, 2020
bac549c
inputargs: update remote URI generation to support ports
mjcheetham Sep 1, 2020
a8e2125
hostprovider: update host prvdr base to use service name
mjcheetham Sep 1, 2020
9ab036d
genericprovider: update the generic provider for new APIs
mjcheetham Sep 1, 2020
860ec54
basic: update basic auth to match new cred interface
mjcheetham Sep 1, 2020
e925512
bitbucket: update BB provider to implement new cred APIs
mjcheetham Sep 1, 2020
f8cd76e
github: update GitHub provider to impl new cred model
mjcheetham Sep 1, 2020
fada973
azrepos: update azrepos to new credential model/APIs
mjcheetham Sep 1, 2020
05b04ba
azrepos: workaround org@ user hackery
mjcheetham Sep 2, 2020
43e0f4d
credstore: add support for custom cred namespaces
mjcheetham Sep 1, 2020
2e631df
docs: update documentation to reflect changes
mjcheetham Sep 4, 2020
fd6df7c
environment: fix environment process locator
mjcheetham Sep 8, 2020
c883429
Merge pull request #162 from mjcheetham/newcred2
mjcheetham Sep 17, 2020
809a050
github: remove user/pass auth for github.com
mjcheetham Sep 18, 2020
4a5f54f
github: fix a typo in "DotCom" (- "DotDom")
mjcheetham Sep 21, 2020
368d65a
Merge pull request #171 from mjcheetham/gh-oauthonly
mjcheetham Sep 21, 2020
02b6f43
credstore: change contruction of existing credstores
mjcheetham Sep 18, 2020
094896e
plaintext-credstore: add plaintext credstore
mjcheetham Sep 18, 2020
b582f0c
tests: introduce "Posix" and "All" PlatformFact support
mjcheetham Sep 18, 2020
233d2e1
gpg-credstore: add GPG/pass based credential store
mjcheetham Sep 18, 2020
e69aeaa
docs: add docs for configuring Linux cred stores
mjcheetham Sep 18, 2020
68d94a2
linux-credstore: extract credstore option constants
mjcheetham Sep 21, 2020
b360730
Merge pull request #172 from mjcheetham/linux-credstores
mjcheetham Sep 21, 2020
f973308
linux: add Linux Azure Pipelines release
mjcheetham Sep 21, 2020
221fe61
Merge pull request #174 from microsoft/linux-release-build
mjcheetham Sep 21, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .azure-pipelines/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,11 @@ jobs:
steps:
- template: templates/osx/compile.yml
- template: templates/osx/pack.unsigned.yml

- job: ubuntu1804_x86_64
displayName: Ubuntu 18.04 LTS x86_64
pool:
vmImage: ubuntu-18.04
steps:
- template: templates/linux/compile.yml
- template: templates/linux/pack.unsigned.yml
13 changes: 11 additions & 2 deletions .azure-pipelines/pull-request.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
trigger: none

pr:
- master
- release

variables:
configuration: Release
Expand All @@ -22,3 +23,11 @@ jobs:
steps:
- template: templates/osx/compile.yml
- template: templates/osx/pack.unsigned.yml

- job: ubuntu1804_x86_64
displayName: Ubuntu 18.04 LTS x86_64
pool:
vmImage: ubuntu-18.04
steps:
- template: templates/linux/compile.yml
- template: templates/linux/pack.unsigned.yml
8 changes: 8 additions & 0 deletions .azure-pipelines/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,11 @@ jobs:
vmImage: $(osxImage)
steps:
- template: templates/osx/pack.signed/step5-dist.yml

- job: ubuntu1804_x86_64
displayName: Ubuntu 18.04 LTS x86_64
pool:
vmImage: ubuntu-18.04
steps:
- template: templates/linux/compile.yml
- template: templates/linux/pack.unsigned.yml
22 changes: 22 additions & 0 deletions .azure-pipelines/templates/linux/compile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
steps:
- task: UseDotNet@2
displayName: Use .NET Core SDK 3.1.x
inputs:
packageType: sdk
version: 3.1.x

- task: DotNetCoreCLI@2
displayName: Compile common code
inputs:
command: build
projects: 'Git-Credential-Manager.sln'
arguments: '--configuration=Linux$(configuration)'

- task: DotNetCoreCLI@2
displayName: Run common unit tests
inputs:
command: test
projects: 'Git-Credential-Manager.sln'
arguments: '--configuration=Linux$(configuration)'
publishTestResults: true
testRunTitle: 'Unit tests (Linux)'
12 changes: 12 additions & 0 deletions .azure-pipelines/templates/linux/pack.unsigned.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
steps:
- script: |
mkdir -p "$(Build.StagingDirectory)/publish/"
cp "out/linux/Packaging.Linux/tar/$(configuration)/"*.tar.gz "$(Build.StagingDirectory)/publish/"
cp "out/linux/Packaging.Linux/deb/$(configuration)/"*.deb "$(Build.StagingDirectory)/publish/"
displayName: Prepare final build artifacts

- task: PublishPipelineArtifact@0
displayName: Publish unsigned installer artifacts
inputs:
artifactName: 'Installer.Linux.Unsigned'
targetPath: '$(Build.StagingDirectory)/publish'
36 changes: 36 additions & 0 deletions .github/workflows/build-installers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Build-Installers

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
linux:
name: "Linux"

runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Indicate full history so Nerdbank.GitVersioning works.

- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.302

- name: Install dependencies
run: dotnet restore --force

- name: Build Linux Payloads
run: dotnet build -c Release src/linux/Packaging.Linux/Packaging.Linux.csproj

- name: Upload Installers
uses: actions/upload-artifact@v2
with:
name: Installers
path: |
out/linux/Packaging.Linux/deb/Release/*.deb
out/linux/Packaging.Linux/tar/Release/*.tar.gz
44 changes: 44 additions & 0 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: GCM-Core

on:
push:
branches: [ master, linux ]
pull_request:
branches: [ master, linux ]

jobs:
validate_gcm:
name: "CI"

runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-16.04, ubuntu-18.04, ubuntu-20.04, windows-2019, macos-10.15]

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Indicate full history so Nerdbank.GitVersioning works.

- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.302

- name: Install dependencies
run: dotnet restore

- name: Build Windows
if: contains(matrix.os, 'windows')
run: dotnet build --configuration WindowsRelease

- name: Build Linux
if: contains(matrix.os, 'ubuntu')
run: dotnet build --configuration LinuxRelease

- name: Build macOS
if: contains(matrix.os, 'macos')
run: dotnet build --configuration MacRelease

- name: Test
run: dotnet test --no-restore --verbosity normal
30 changes: 4 additions & 26 deletions .github/workflows/release-homebrew.yaml
Original file line number Diff line number Diff line change
@@ -1,40 +1,18 @@
name: "release-homebrew"
on:
release:
types: [published]
types: [released]

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Get macOS package version
uses: actions/github-script@0.3.0
id: version
with:
github-token: ${{secrets.GITHUB_TOKEN}}
result-encoding: string
script: |
const { data: releases } = await github.repos.listReleases({
owner: context.repo.owner,
repo: context.repo.repo
});
const release = releases.find(x => x.tag_name === process.env.GITHUB_REF);
if (!release) {
throw new Error(`unable to find release with tag '${process.env.GITHUB_REF}'`);
}
const regex = /gcmcore-osx-(.*)\.pkg/;
const asset = release.assets.find(x => regex.test(x.name));
if (!asset) {
throw new Error(`unable to find asset matching '${regex}'`);
}
const matches = asset.name.match(regex);
const version = matches[1];
return version;
- name: Update Homebrew tap
uses: mjcheetham/update-homebrew@v1
uses: mjcheetham/update-homebrew@v1.1
with:
token: ${{ secrets.HOMEBREW_TOKEN }}
tap: microsoft/git
name: git-credential-manager-core
type: cask
version: ${{ steps.version.outputs.result }}
releaseAsset: gcmcore-osx-(.*)\.pkg
alwaysUsePullRequest: true
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<PropertyGroup>
<!--
Set helpful property for detecting the current OS platform.
We can't use the build-in $(OS) because it returns 'Unix' on macOS when run under Mono.
We can't use the built-in $(OS) because it returns 'Unix' on macOS when run under Mono.
-->
<OSPlatform Condition="$([MSBuild]::IsOsPlatform('windows'))">windows</OSPlatform>
<OSPlatform Condition="$([MSBuild]::IsOsPlatform('osx'))">osx</OSPlatform>
Expand All @@ -23,7 +23,7 @@
<ItemGroup>
<!-- All projects should use Nerdbank.GitVersioning for consistent version numbers -->
<PackageReference Include="Nerdbank.GitVersioning">
<Version>2.3.38</Version>
<Version>3.2.7-beta</Version>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
Expand Down
Loading