Browse Source
* intial go at building the windows pipeline in GH * fixing whitespace issue * moving version info script * changing the electron-builder commands to the npm scripts * fixing the PACKAGE_VERSION var * adding debugging statements * changing list command * fixing PACKAGE_VERSION var * adding linux job and disabling windows job * debugging linux installs * retrying the rpm * re-enabling the windows build * re-enabling publishing of the exe * debugging pkg fetched * debugging this more * testing install of pkg-fetch with npm * moving pkg-fetch installation * trying to manually add the fetched package * I was wrong. This wasn't linux. Switching to pwsh * fixing the pwsh var syntax * removing debugging tasks and re-enabling the other build tasks * adding build_and_signing. Removing the non-cli executables from the build pipeline and disabling it for testing. * removing some whitespace * switching how we get package version * adding custom signing script * removing deubbing code and getting ready for PR * adding in another release gate * chaning file name to fit previous standards * removing appveyor pipeline file * moving all of the build tasks to the same build file * changing GITHUB_TOKEN because GITHUB_* is probably reserved * adding release pipeline and moving all realease tasks to that pipeline * updating the package.json's to contain the releases to my repo * fixing the RELEASE_TAG_NAME and switching the electron builder from pack to publish * fixing the npm run publish command * adding GH_TOKEN to the build and sign task * fixing upload path * removing the release asset upload since I think they are already published? * removing testing code * testing tweak to github release * making sure I've got the right repo set * removing whitespace * adding in clone task to setup * removing the stop-gap * adding GH_TOKEN to the linux publish task * fixing string * switching to manual publishing. There seems to be a bug in the electron-builder publishing? or our setup * switching back to electron-builder publishing but manually creating and pushing the tag * I don't know why electron-builder isn't picking up the release. Adding some debugging code * adding in GH token for release checking * adding another GH token for release checking * commenting out the tagging portion. This should just happen automatically... * trying the release without the manual uploads? * adding -d flag to release edit * disabling the gui build to see if the cli changes the tag * trying out a fix * testing the upload release asset action * fixing typo * trying RELEASE_NAME * fixing bash error * trying something else for the release name * changing all of the release asset uploads to a provided action * Removing some debugging code * re-enabling the windows and linux jobs * changing the content type of the checksum files * fixing typo * removing the PKG_INFO flag * installing RH with choco * testing the reshack * reenabling the correct job * resetting release workflow and adding exp workflow * trying ResourceHacker.exe * switching to pwsh to see if that works * switching back and specifying cmd shell * finding the bin to add to the path * wrestling with cmd * debugging path * giving up on nice printing * changing to different path debugging * adding RH to the path * trying something else * trying something else * maybe the path resets? * updating exp workflow to try to get reshack to work * trying to add to the path without the quotes * fixing the RH test * debugging path * setting path forever * not playing around with perfect environment paths with windows.... * preivous test was inconclusive * testing RH * changing the npm command and removing unnecssary GITHUB_TOKEN * removing the exp workflow * quoting the signing file * debugging VER_INFO * debugging the pkg-fetch * disabling non-cli jobs * changing value of WIN_PKG * testing more pkg-fetch * changing the paths to the home directory * renaming exp workflow * trying a string * trying it from the home directory * removing the stop gap * updating the version to something that RH supports * initial release test * fixing GITHUB_TOKEN * changing the version to a real version * debugging tag names * changing the trigger on the exp workflow * moving the disabled job to the correct workflow * trying wet spaghetti * updating case statement * adding in the findings from the experiment * removing testing code. Leaving unfinished macos build disabled * removing the prod environment secrets * setting up the mac build job * renaming the key name * moving the signing file * working on the mac packaging * removing desktop mac certs * disabling the non-mac jobs * setting up the build workflow for first run * adding manual trigger to the build workflow * disabling the push trigger * removing the non-existant setup function * removing the unneeded certs * removing increment version since we are not submitting to the Apple Store. * re-enabling the APPLE_ID vars * updating how the package version is retrieved in build. staging release workflow for testing * fixing the asset upload updating the repo in package.json * adding debugging to dist * adding in missing directory for debugging * renaming that file * updating the build/release workflows * fixing the setup output * updating file name and changing dist to publish * adding in the missing token * changing the zip name * add debuggin * fixing debugging step * removing debugging task. Not needed * reworking the content type of the mac release assets * removing the rename task and adding in some debugging * flipping the order of the dmg and the mac.zip upload to see if it is a problem with the release asset upload * adding the renaming back in * switching the upload name back to dashes * commenting out the manual release asset upload. Looks like publish is doing that? * removing all debugging code * updating README with the GitHub Actions Badge * changing all of the slashes to match * removing unneeded package version setting * removing unneeded package version setup * adding WIN_PKG task back in. accidentally removed itpull/93/head
11 changed files with 864 additions and 164 deletions
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
param ( |
||||
[Parameter(Mandatory=$true)] |
||||
[string] $filename, |
||||
[string] $output |
||||
) |
||||
|
||||
$homePath = Resolve-Path "~" | Select-Object -ExpandProperty Path |
||||
$rootPath = $env:GITHUB_WORKSPACE |
||||
|
||||
$secretInputPath = $rootPath + "/.github/secrets" |
||||
$input = $secretInputPath + "/" + $filename |
||||
|
||||
$passphrase = $env:DECRYPT_FILE_PASSWORD |
||||
$secretOutputPath = $homePath + "/secrets" |
||||
|
||||
if ([string]::IsNullOrEmpty($output)) { |
||||
if ($filename.EndsWith(".gpg")) { |
||||
$output = $secretOutputPath + "/" + $filename.TrimEnd(".gpg") |
||||
} else { |
||||
$output = $secretOutputPath + "/" + $filename + ".plaintext" |
||||
} |
||||
} |
||||
|
||||
if (!(Test-Path -Path $secretOutputPath)) |
||||
{ |
||||
New-Item -ItemType Directory -Path $secretOutputPath |
||||
} |
||||
|
||||
gpg --quiet --batch --yes --decrypt --passphrase="$passphrase" --output $output $input |
||||
@ -0,0 +1,5 @@
@@ -0,0 +1,5 @@
|
||||
$rootPath = $env:GITHUB_WORKSPACE; |
||||
$packageVersion = (Get-Content -Raw -Path $rootPath\src\package.json | ConvertFrom-Json).version; |
||||
|
||||
Write-Output "Setting package version to $packageVersion"; |
||||
Write-Output "PACKAGE_VERSION=$packageVersion" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append; |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
$rootPath = $env:GITHUB_WORKSPACE; |
||||
|
||||
$decryptSecretPath = $($rootPath + "/.github/scripts/decrypt-secret.ps1"); |
||||
|
||||
Invoke-Expression "& `"$decryptSecretPath`" -filename devid-app-cert.p12.gpg" |
||||
Invoke-Expression "& `"$decryptSecretPath`" -filename devid-installer-cert.p12.gpg" |
||||
Invoke-Expression "& `"$decryptSecretPath`" -filename macdev-cert.p12.gpg" |
||||
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
$homePath = Resolve-Path "~" | Select-Object -ExpandProperty Path; |
||||
$secretsPath = $homePath + "/secrets" |
||||
|
||||
$devidAppCertPath = $($secretsPath + "/devid-app-cert.p12"); |
||||
$devidInstallerCertPath = $($secretsPath + "/devid-installer-cert.p12"); |
||||
$macdevCertPath = $($secretsPath + "/macdev-cert.p12"); |
||||
|
||||
security create-keychain -p $env:KEYCHAIN_PASSWORD build.keychain |
||||
security default-keychain -s build.keychain |
||||
security unlock-keychain -p $env:KEYCHAIN_PASSWORD build.keychain |
||||
security set-keychain-settings -lut 1200 build.keychain |
||||
security import $devidAppCertPath -k build.keychain -P $env:DEVID_CERT_PASSWORD -T /usr/bin/codesign -T /usr/bin/security -T /usr/bin/productbuild |
||||
security import $devidInstallerCertPath -k build.keychain -P $env:DEVID_CERT_PASSWORD -T /usr/bin/codesign -T /usr/bin/security -T /usr/bin/productbuild |
||||
security import $macdevCertPath -k build.keychain -P $env:MACDEV_CERT_PASSWORD -T /usr/bin/codesign -T /usr/bin/security -T /usr/bin/productbuild |
||||
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $env:KEYCHAIN_PASSWORD build.keychain |
||||
@ -0,0 +1,390 @@
@@ -0,0 +1,390 @@
|
||||
name: Build |
||||
|
||||
on: |
||||
push: |
||||
branches-ignore: |
||||
- 'l10n_master' |
||||
workflow_dispatch: |
||||
inputs: |
||||
|
||||
|
||||
jobs: |
||||
cloc: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Set up cloc |
||||
run: | |
||||
sudo apt update |
||||
sudo apt -y install cloc |
||||
- name: Print lines of code |
||||
run: cloc --include-lang TypeScript,JavaScript,HTML,Sass,CSS --vcs git |
||||
|
||||
|
||||
setup: |
||||
runs-on: ubuntu-latest |
||||
outputs: |
||||
package_version: ${{ steps.get_version.outputs.package_version }} |
||||
steps: |
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Get Package Version |
||||
id: get_version |
||||
shell: pwsh |
||||
run: | |
||||
$env:pkgVersion = (Get-Content -Raw -Path ./src/package.json | ConvertFrom-Json).version |
||||
echo "::set-output name=PACKAGE_VERSION::$env:pkgVersion" |
||||
|
||||
|
||||
cli: |
||||
runs-on: windows-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Setup Windows builder |
||||
run: | |
||||
choco install checksum --no-progress |
||||
choco install reshack --no-progress |
||||
|
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Setting WIN_PKG |
||||
run: | |
||||
echo "WIN_PKG=$env:WIN_PKG" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
||||
echo "version: $env:pkgVersion" |
||||
env: |
||||
WIN_PKG: C:\Users\runneradmin\.pkg-cache\v2.5\fetched-v10.4.1-win-x64 |
||||
|
||||
- name: get pkg-fetch |
||||
shell: pwsh |
||||
run: | |
||||
cd $HOME |
||||
$fetchedUrl = "https://github.com/vercel/pkg-fetch/releases/download/v2.5/uploaded-v2.5-node-v10.4.1-win-x64" |
||||
|
||||
New-Item -ItemType directory -Path ./.pkg-cache |
||||
New-Item -ItemType directory -Path ./.pkg-cache/v2.5 |
||||
Invoke-RestMethod -Uri $fetchedUrl -OutFile "./.pkg-cache/v2.5/fetched-v10.4.1-win-x64" |
||||
env: |
||||
WIN_PKG: C:\Users\runneradmin\.pkg-cache\v2.5\fetched-v10.4.1-win-x64 |
||||
|
||||
- name: Keytar |
||||
shell: pwsh |
||||
run: | |
||||
$keytarVersion = (Get-Content -Raw -Path ./src/package.json | ConvertFrom-Json).dependencies.keytar |
||||
$nodeModVersion = node -e "console.log(process.config.variables.node_module_version)" |
||||
$keytarTar = "keytar-v${keytarVersion}-node-v${nodeModVersion}-{0}-x64.tar" |
||||
$keytarTarGz = "${keytarTar}.gz" |
||||
$keytarUrl = "https://github.com/atom/node-keytar/releases/download/v${keytarVersion}/${keytarTarGz}" |
||||
|
||||
New-Item -ItemType directory -Path ./keytar/macos | Out-Null |
||||
New-Item -ItemType directory -Path ./keytar/linux | Out-Null |
||||
New-Item -ItemType directory -Path ./keytar/windows | Out-Null |
||||
|
||||
Invoke-RestMethod -Uri $($keytarUrl -f "darwin") -OutFile "./keytar/macos/$($keytarTarGz -f "darwin")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "linux") -OutFile "./keytar/linux/$($keytarTarGz -f "linux")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "win32") -OutFile "./keytar/windows/$($keytarTarGz -f "win32")" |
||||
|
||||
7z e "./keytar/macos/$($keytarTarGz -f "darwin")" -o"./keytar/macos" |
||||
7z e "./keytar/linux/$($keytarTarGz -f "linux")" -o"./keytar/linux" |
||||
7z e "./keytar/windows/$($keytarTarGz -f "win32")" -o"./keytar/windows" |
||||
|
||||
7z e "./keytar/macos/$($keytarTar -f "darwin")" -o"./keytar/macos" |
||||
7z e "./keytar/linux/$($keytarTar -f "linux")" -o"./keytar/linux" |
||||
7z e "./keytar/windows/$($keytarTar -f "win32")" -o"./keytar/windows" |
||||
|
||||
- name: Setup Version Info |
||||
shell: pwsh |
||||
run: ./scripts/make-versioninfo.ps1 |
||||
|
||||
- name: Resource Hacker |
||||
shell: cmd |
||||
run: | |
||||
set PATH=%PATH%;C:\Program Files (x86)\Resource Hacker |
||||
ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action delete -mask ICONGROUP,1, |
||||
ResourceHacker -open version-info.rc -save version-info.res -action compile |
||||
ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action addoverwrite -resource version-info.res |
||||
|
||||
- name: Install |
||||
run: npm install |
||||
|
||||
- name: Package CLI |
||||
run: npm run dist:cli |
||||
|
||||
- name: Zip |
||||
shell: cmd |
||||
run: | |
||||
7z a ./dist-cli/bwdc-windows-%PACKAGE_VERSION%.zip ./dist-cli/windows/bwdc.exe ./keytar/windows/keytar.node |
||||
7z a ./dist-cli/bwdc-macos-%PACKAGE_VERSION%.zip ./dist-cli/macos/bwdc ./keytar/macos/keytar.node |
||||
7z a ./dist-cli/bwdc-linux-%PACKAGE_VERSION%.zip ./dist-cli/linux/bwdc ./keytar/linux/keytar.node |
||||
|
||||
- name: Version Test |
||||
run: | |
||||
Expand-Archive -Path "./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" -DestinationPath "./test/windows" |
||||
$testVersion = Invoke-Expression '& ./test/windows/bwdc.exe -v' |
||||
echo "version: $env:PACKAGE_VERSION" |
||||
echo "testVersion: $testVersion" |
||||
if($testVersion -ne $env:PACKAGE_VERSION) { |
||||
Throw "Version test failed." |
||||
} |
||||
|
||||
- name: Create checksums |
||||
run: | |
||||
checksum -f="./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-windows-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-macos-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-macos-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-linux-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-linux-sha256-${env:PACKAGE_VERSION}.txt |
||||
|
||||
- name: Upload windows zip to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-windows-${{ env.PACKAGE_VERSION }}.zip |
||||
path: ./dist-cli/bwdc-windows-${{ env.PACKAGE_VERSION }}.zip |
||||
|
||||
- name: Upload mac zip to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-macos-${{ env.PACKAGE_VERSION }}.zip |
||||
path: ./dist-cli/bwdc-macos-${{ env.PACKAGE_VERSION }}.zip |
||||
|
||||
- name: Upload linux zip to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-linux-${{ env.PACKAGE_VERSION }}.zip |
||||
path: ./dist-cli/bwdc-linux-${{ env.PACKAGE_VERSION }}.zip |
||||
|
||||
- name: Upload windows checksum to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-windows-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
path: ./dist-cli/bwdc-windows-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
|
||||
- name: Upload mac checksum to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-macos-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
path: ./dist-cli/bwdc-macos-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
|
||||
- name: Upload linux checksum to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: bwdc-linux-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
path: ./dist-cli/bwdc-linux-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
|
||||
|
||||
windows_gui: |
||||
runs-on: windows-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up dotnet |
||||
uses: actions/setup-dotnet@v1 |
||||
with: |
||||
dotnet-version: "3.1.x" |
||||
|
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
||||
shell: pwsh |
||||
|
||||
- name: Print environment |
||||
run: | |
||||
node --version |
||||
npm --version |
||||
dotnet --version |
||||
|
||||
- name: Install AST |
||||
shell: pwsh |
||||
run: | |
||||
cd $HOME |
||||
|
||||
git clone https://github.com/vcsjones/AzureSignTool.git |
||||
cd AzureSignTool |
||||
$latest_head = $(git rev-parse HEAD)[0..9] -join "" |
||||
$latest_version = "0.0.0-g$latest_head" |
||||
|
||||
Write-Host "--------" |
||||
Write-Host "git commit - $(git rev-parse HEAD)" |
||||
Write-Host "latest_head - $latest_head" |
||||
Write-Host "PACKAGE VERSION TO BUILD - $latest_version" |
||||
Write-Host "--------" |
||||
|
||||
dotnet restore |
||||
dotnet pack --output ./nupkg |
||||
dotnet tool install --global --ignore-failed-sources --add-source ./nupkg --version $latest_version azuresigntool |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Install Node dependencies |
||||
run: npm install |
||||
|
||||
- name: Run linter |
||||
run: npm run lint |
||||
|
||||
- name: Build & Sign |
||||
run: npm run dist:win |
||||
env: |
||||
ELECTRON_BUILDER_SIGN: 1 |
||||
SIGNING_VAULT_URL: ${{ secrets.SIGNING_VAULT_URL }} |
||||
SIGNING_CLIENT_ID: ${{ secrets.SIGNING_CLIENT_ID }} |
||||
SIGNING_TENANT_ID: ${{ secrets.SIGNING_TENANT_ID }} |
||||
SIGNING_CLIENT_SECRET: ${{ secrets.SIGNING_CLIENT_SECRET }} |
||||
SIGNING_CERT_NAME: ${{ secrets.SIGNING_CERT_NAME }} |
||||
|
||||
- name: List Dist |
||||
run: dir ./dist |
||||
|
||||
- name: Publish Portable Exe to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: Bitwarden-Connector-Portable-${{ env.PACKAGE_VERSION }}.exe |
||||
path: ./dist/Bitwarden-Connector-Portable-${{ env.PACKAGE_VERSION }}.exe |
||||
|
||||
- name: Publish Installer Exe to GitHub |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: Bitwarden-Connector-Installer-${{ env.PACKAGE_VERSION }}.exe |
||||
path: ./dist/Bitwarden-Connector-Installer-${{ env.PACKAGE_VERSION }}.exe |
||||
|
||||
|
||||
linux: |
||||
runs-on: ubuntu-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV |
||||
|
||||
- name: Set up environment |
||||
run: | |
||||
sudo apt-get update |
||||
sudo apt-get -y install pkg-config libxss-dev libsecret-1-dev |
||||
sudo apt-get -y install rpm |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: npm install |
||||
run: npm install |
||||
|
||||
- name: npm rebuild |
||||
run: npm run rebuild |
||||
|
||||
- name: npm package |
||||
run: npm run dist:lin |
||||
|
||||
- name: Publish AppImage |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: Bitwarden-Connector-${{ env.PACKAGE_VERSION }}-x86_64.AppImage |
||||
path: ./dist/Bitwarden-Connector-${{ env.PACKAGE_VERSION }}-x86_64.AppImage |
||||
|
||||
|
||||
macos: |
||||
runs-on: macos-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV |
||||
|
||||
- name: Print environment |
||||
run: | |
||||
node --version |
||||
npm --version |
||||
Write-Output "GitHub ref: $env:GITHUB_REF" |
||||
Write-Output "GitHub event: $env:GITHUB_EVENT" |
||||
shell: pwsh |
||||
env: |
||||
GITHUB_REF: ${{ github.ref }} |
||||
GITHUB_EVENT: ${{ github.event_name }} |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Decrypt secrets |
||||
run: ./.github/scripts/macos/decrypt-secrets.ps1 |
||||
shell: pwsh |
||||
env: |
||||
DECRYPT_FILE_PASSWORD: ${{ secrets.DECRYPT_FILE_PASSWORD }} |
||||
|
||||
- name: Set up keychain |
||||
run: ./.github/scripts/macos/setup-keychain.ps1 |
||||
shell: pwsh |
||||
env: |
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} |
||||
DEVID_CERT_PASSWORD: ${{ secrets.DEVID_CERT_PASSWORD }} |
||||
MACDEV_CERT_PASSWORD: ${{ secrets.MACDEV_CERT_PASSWORD }} |
||||
|
||||
- name: Load package version |
||||
run: ./.github/scripts/load-version.ps1 |
||||
shell: pwsh |
||||
|
||||
- name: Install Node dependencies |
||||
run: npm install |
||||
|
||||
- name: Run linter |
||||
run: npm run lint |
||||
|
||||
- name: Build application (dev) |
||||
if: github.ref != 'refs/heads/master' |
||||
run: npm run build |
||||
|
||||
- name: Build application (dist) |
||||
if: github.ref == 'refs/heads/master' |
||||
run: npm run dist:mac |
||||
env: |
||||
APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }} |
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} |
||||
|
||||
- name: Upload .zip artifact |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: Bitwarden-Connector-${{ env.PACKAGE_VERSION }}-mac.zip |
||||
path: ./dist/Bitwarden-Connector-${{ env.PACKAGE_VERSION }}-mac.zip |
||||
|
||||
- name: Upload .dmg artifact |
||||
if: github.ref == 'refs/heads/master' |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: Bitwarden-Connector-${{ env.PACKAGE_VERSION }}.dmg |
||||
path: ./dist/Bitwarden-Connector-${{ env.PACKAGE_VERSION }}.dmg |
||||
@ -0,0 +1,392 @@
@@ -0,0 +1,392 @@
|
||||
name: Release |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
inputs: |
||||
release_tag_name_input: |
||||
description: "Release Tag Name <X.X.X>" |
||||
required: true |
||||
|
||||
|
||||
jobs: |
||||
setup: |
||||
runs-on: ubuntu-latest |
||||
outputs: |
||||
package_version: ${{ steps.create_tags.outputs.package_version }} |
||||
tag_version: ${{ steps.create_tags.outputs.tag_version }} |
||||
release_upload_url: ${{ steps.create_release.outputs.upload_url }} |
||||
steps: |
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Create Release Vars |
||||
id: create_tags |
||||
run: | |
||||
case "${RELEASE_TAG_NAME_INPUT:0:1}" in |
||||
v) |
||||
echo "RELEASE_NAME=${RELEASE_TAG_NAME_INPUT:1}" >> $GITHUB_ENV |
||||
echo "RELEASE_TAG_NAME=$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV |
||||
echo "::set-output name=package_version::${RELEASE_TAG_NAME_INPUT:1}" |
||||
echo "::set-output name=tag_version::$RELEASE_TAG_NAME_INPUT" |
||||
;; |
||||
[0-9]) |
||||
echo "RELEASE_NAME=$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV |
||||
echo "RELEASE_TAG_NAME=v$RELEASE_TAG_NAME_INPUT" >> $GITHUB_ENV |
||||
echo "::set-output name=package_version::$RELEASE_TAG_NAME_INPUT" |
||||
echo "::set-output name=tag_version::v$RELEASE_TAG_NAME_INPUT" |
||||
;; |
||||
*) |
||||
exit 1 |
||||
;; |
||||
esac |
||||
env: |
||||
RELEASE_TAG_NAME_INPUT: ${{ github.event.inputs.release_tag_name_input }} |
||||
|
||||
- name: Create Draft Release |
||||
id: create_release |
||||
uses: actions/create-release@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
tag_name: ${{ env.RELEASE_TAG_NAME }} |
||||
release_name: ${{ env.RELEASE_NAME }} |
||||
draft: true |
||||
prerelease: false |
||||
|
||||
|
||||
cli: |
||||
runs-on: windows-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Setup Windows builder |
||||
run: | |
||||
choco install checksum --no-progress |
||||
choco install reshack --no-progress |
||||
|
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set VER_INFO |
||||
run: | |
||||
echo "WIN_PKG=$env:WIN_PKG" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
||||
env: |
||||
WIN_PKG: C:\Users\runneradmin\.pkg-cache\v2.5\fetched-v10.4.1-win-x64 |
||||
|
||||
- name: get pkg-fetch |
||||
shell: pwsh |
||||
run: | |
||||
cd $HOME |
||||
$fetchedUrl = "https://github.com/vercel/pkg-fetch/releases/download/v2.5/uploaded-v2.5-node-v10.4.1-win-x64" |
||||
|
||||
New-Item -ItemType directory -Path ./.pkg-cache |
||||
New-Item -ItemType directory -Path ./.pkg-cache/v2.5 |
||||
Invoke-RestMethod -Uri $fetchedUrl -OutFile "./.pkg-cache/v2.5/fetched-v10.4.1-win-x64" |
||||
env: |
||||
WIN_PKG: C:\Users\runneradmin\.pkg-cache\v2.5\fetched-v10.4.1-win-x64 |
||||
|
||||
- name: Keytar |
||||
shell: pwsh |
||||
run: | |
||||
$keytarVersion = (Get-Content -Raw -Path ./src/package.json | ConvertFrom-Json).dependencies.keytar |
||||
$nodeModVersion = node -e "console.log(process.config.variables.node_module_version)" |
||||
$keytarTar = "keytar-v${keytarVersion}-node-v${nodeModVersion}-{0}-x64.tar" |
||||
$keytarTarGz = "${keytarTar}.gz" |
||||
$keytarUrl = "https://github.com/atom/node-keytar/releases/download/v${keytarVersion}/${keytarTarGz}" |
||||
|
||||
New-Item -ItemType directory -Path ./keytar/macos | Out-Null |
||||
New-Item -ItemType directory -Path ./keytar/linux | Out-Null |
||||
New-Item -ItemType directory -Path ./keytar/windows | Out-Null |
||||
|
||||
Invoke-RestMethod -Uri $($keytarUrl -f "darwin") -OutFile "./keytar/macos/$($keytarTarGz -f "darwin")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "linux") -OutFile "./keytar/linux/$($keytarTarGz -f "linux")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "win32") -OutFile "./keytar/windows/$($keytarTarGz -f "win32")" |
||||
|
||||
7z e "./keytar/macos/$($keytarTarGz -f "darwin")" -o"./keytar/macos" |
||||
7z e "./keytar/linux/$($keytarTarGz -f "linux")" -o"./keytar/linux" |
||||
7z e "./keytar/windows/$($keytarTarGz -f "win32")" -o"./keytar/windows" |
||||
|
||||
7z e "./keytar/macos/$($keytarTar -f "darwin")" -o"./keytar/macos" |
||||
7z e "./keytar/linux/$($keytarTar -f "linux")" -o"./keytar/linux" |
||||
7z e "./keytar/windows/$($keytarTar -f "win32")" -o"./keytar/windows" |
||||
|
||||
- name: Setup Version Info |
||||
shell: pwsh |
||||
run: ./scripts/make-versioninfo.ps1 |
||||
|
||||
- name: Resource Hacker |
||||
shell: cmd |
||||
run: | |
||||
set PATH=%PATH%;C:\Program Files (x86)\Resource Hacker |
||||
ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action delete -mask ICONGROUP,1, |
||||
ResourceHacker -open version-info.rc -save version-info.res -action compile |
||||
ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action addoverwrite -resource version-info.res |
||||
|
||||
- name: Install |
||||
run: npm install |
||||
|
||||
- name: Package CLI |
||||
run: npm run dist:cli |
||||
|
||||
- name: Zip |
||||
shell: cmd |
||||
run: | |
||||
7z a ./dist-cli/bwdc-windows-%PACKAGE_VERSION%.zip ./dist-cli/windows/bwdc.exe ./keytar/windows/keytar.node |
||||
7z a ./dist-cli/bwdc-macos-%PACKAGE_VERSION%.zip ./dist-cli/macos/bwdc ./keytar/macos/keytar.node |
||||
7z a ./dist-cli/bwdc-linux-%PACKAGE_VERSION%.zip ./dist-cli/linux/bwdc ./keytar/linux/keytar.node |
||||
|
||||
- name: Version Test |
||||
run: | |
||||
Expand-Archive -Path "./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" -DestinationPath "./test/windows" |
||||
$testVersion = Invoke-Expression '& ./test/windows/bwdc.exe -v' |
||||
echo "version: $env:PACKAGE_VERSION" |
||||
echo "testVersion: $testVersion" |
||||
if($testVersion -ne $env:PACKAGE_VERSION) { |
||||
Throw "Version test failed." |
||||
} |
||||
|
||||
- name: Create checksums |
||||
run: | |
||||
checksum -f="./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-windows-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-macos-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-macos-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-linux-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-linux-sha256-${env:PACKAGE_VERSION}.txt |
||||
|
||||
- name: upload windows zip release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-windows-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_name: bwdc-windows-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_content_type: application/zip |
||||
|
||||
- name: upload macos zip release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-macos-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_name: bwdc-macos-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_content_type: application/zip |
||||
|
||||
- name: upload linux zip release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-linux-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_name: bwdc-linux-${{ env.PACKAGE_VERSION }}.zip |
||||
asset_content_type: application/zip |
||||
|
||||
- name: upload windows checksum release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-windows-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_name: bwdc-windows-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_content_type: text/plain |
||||
|
||||
- name: upload macos checksum release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-macos-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_name: bwdc-macos-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_content_type: text/plain |
||||
|
||||
- name: upload linux checksum release asset |
||||
uses: actions/upload-release-asset@v1 |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
with: |
||||
upload_url: ${{ needs.setup.outputs.release_upload_url }} |
||||
asset_path: ./dist-cli/bwdc-linux-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_name: bwdc-linux-sha256-${{ env.PACKAGE_VERSION }}.txt |
||||
asset_content_type: text/plain |
||||
|
||||
|
||||
windows-gui: |
||||
runs-on: windows-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up dotnet |
||||
uses: actions/setup-dotnet@v1 |
||||
with: |
||||
dotnet-version: "3.1.x" |
||||
|
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
||||
shell: pwsh |
||||
|
||||
- name: Print environment |
||||
run: | |
||||
node --version |
||||
npm --version |
||||
dotnet --version |
||||
|
||||
- name: Install AST |
||||
shell: pwsh |
||||
run: | |
||||
cd $HOME |
||||
git clone https://github.com/vcsjones/AzureSignTool.git |
||||
cd AzureSignTool |
||||
$latest_head = $(git rev-parse HEAD)[0..9] -join "" |
||||
$latest_version = "0.0.0-g$latest_head" |
||||
Write-Host "--------" |
||||
Write-Host "git commit - $(git rev-parse HEAD)" |
||||
Write-Host "latest_head - $latest_head" |
||||
Write-Host "PACKAGE VERSION TO BUILD - $latest_version" |
||||
Write-Host "--------" |
||||
dotnet restore |
||||
dotnet pack --output ./nupkg |
||||
dotnet tool install --global --ignore-failed-sources --add-source ./nupkg --version $latest_version azuresigntool |
||||
cd $HOME |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Install Node dependencies |
||||
run: npm install |
||||
|
||||
- name: Run linter |
||||
run: npm run lint |
||||
|
||||
- name: npm rebuild |
||||
run: npm run rebuild |
||||
|
||||
- name: Build & Sign |
||||
run: | |
||||
npm run publish:win |
||||
env: |
||||
ELECTRON_BUILDER_SIGN: 1 |
||||
SIGNING_VAULT_URL: ${{ secrets.SIGNING_VAULT_URL }} |
||||
SIGNING_CLIENT_ID: ${{ secrets.SIGNING_CLIENT_ID }} |
||||
SIGNING_TENANT_ID: ${{ secrets.SIGNING_TENANT_ID }} |
||||
SIGNING_CLIENT_SECRET: ${{ secrets.SIGNING_CLIENT_SECRET }} |
||||
SIGNING_CERT_NAME: ${{ secrets.SIGNING_CERT_NAME }} |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
|
||||
|
||||
linux: |
||||
runs-on: ubuntu-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV |
||||
|
||||
- name: Set up environment |
||||
run: | |
||||
sudo apt-get update |
||||
sudo apt-get -y install pkg-config libxss-dev libsecret-1-dev |
||||
sudo apt-get -y install rpm |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Set PACKAGE_VERSION |
||||
shell: pwsh |
||||
run: | |
||||
$env:pkgVersion = (Get-Content -Raw -Path ./src/package.json | ConvertFrom-Json).version |
||||
echo "PACKAGE_VERSION=$env:pkgVersion" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
||||
echo "version: $env:pkgVersion" |
||||
|
||||
- name: npm install |
||||
run: npm install |
||||
|
||||
- name: npm rebuild |
||||
run: npm run rebuild |
||||
|
||||
- name: npm package |
||||
run: npm run publish:lin |
||||
env: |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
|
||||
|
||||
macos: |
||||
runs-on: macos-latest |
||||
needs: setup |
||||
env: |
||||
PACKAGE_VERSION: ${{ needs.setup.outputs.package_version }} |
||||
steps: |
||||
- name: Set up Node |
||||
uses: actions/setup-node@v1 |
||||
with: |
||||
node-version: '10.x' |
||||
|
||||
- name: Set Node options |
||||
run: echo "NODE_OPTIONS=--max_old_space_size=4096" >> $GITHUB_ENV |
||||
|
||||
- name: Print environment |
||||
run: | |
||||
node --version |
||||
npm --version |
||||
Write-Output "GitHub ref: $env:GITHUB_REF" |
||||
Write-Output "GitHub event: $env:GITHUB_EVENT" |
||||
shell: pwsh |
||||
env: |
||||
GITHUB_REF: ${{ github.ref }} |
||||
GITHUB_EVENT: ${{ github.event_name }} |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v2 |
||||
|
||||
- name: Decrypt secrets |
||||
run: ./.github/scripts/macos/decrypt-secrets.ps1 |
||||
shell: pwsh |
||||
env: |
||||
DECRYPT_FILE_PASSWORD: ${{ secrets.DECRYPT_FILE_PASSWORD }} |
||||
|
||||
- name: Set up keychain |
||||
run: ./.github/scripts/macos/setup-keychain.ps1 |
||||
shell: pwsh |
||||
env: |
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} |
||||
DEVID_CERT_PASSWORD: ${{ secrets.DEVID_CERT_PASSWORD }} |
||||
MACDEV_CERT_PASSWORD: ${{ secrets.MACDEV_CERT_PASSWORD }} |
||||
|
||||
- name: Load package version |
||||
run: ./.github/scripts/load-version.ps1 |
||||
shell: pwsh |
||||
|
||||
- name: Install Node dependencies |
||||
run: npm install |
||||
|
||||
- name: Run linter |
||||
run: npm run lint |
||||
|
||||
- name: Build application (dist) |
||||
run: npm run publish:mac |
||||
env: |
||||
APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }} |
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} |
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
@ -1,162 +0,0 @@
@@ -1,162 +0,0 @@
|
||||
image: |
||||
- Visual Studio 2017 |
||||
- Ubuntu1804 |
||||
|
||||
branches: |
||||
except: |
||||
- l10n_master |
||||
|
||||
environment: |
||||
WIN_PKG: C:\Users\appveyor\.pkg-cache\v2.5\fetched-v10.4.1-win-x64 |
||||
|
||||
stack: node 10 |
||||
|
||||
init: |
||||
- ps: | |
||||
if($isWindows -and $env:DEBUG_RDP -eq "true") { |
||||
iex ((new-object net.webclient).DownloadString(` |
||||
'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) |
||||
} |
||||
- sh: sudo apt-get update |
||||
- sh: sudo apt-get -y install pkg-config libxss-dev libsecret-1-dev rpm |
||||
- ps: | |
||||
if($isWindows) { |
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 |
||||
Install-Product node 10 |
||||
$env:PATH = "C:\Program Files (x86)\Resource Hacker;${env:PATH}" |
||||
} |
||||
if($env:APPVEYOR_REPO_TAG -eq "true") { |
||||
$env:RELEASE_NAME = $env:APPVEYOR_REPO_TAG_NAME.TrimStart("v") |
||||
} |
||||
|
||||
install: |
||||
- ps: | |
||||
$env:PACKAGE_VERSION = (Get-Content -Raw -Path .\src\package.json | ConvertFrom-Json).version |
||||
$env:PROD_DEPLOY = "false" |
||||
if($env:APPVEYOR_REPO_TAG -eq "true" -and $env:APPVEYOR_RE_BUILD -eq "True") { |
||||
$env:PROD_DEPLOY = "true" |
||||
echo "This is a production deployment." |
||||
} |
||||
if($isWindows) { |
||||
if(Test-Path -Path $env:WIN_PKG) { |
||||
$env:VER_INFO = "true" |
||||
} |
||||
choco install reshack --no-progress |
||||
choco install cloc --no-progress |
||||
choco install checksum --no-progress |
||||
cloc --include-lang TypeScript,JavaScript,HTML,Sass,CSS --vcs git |
||||
.\make-versioninfo.ps1 |
||||
} |
||||
- ps: | |
||||
if($isWindows) { |
||||
$keytarVersion = (Get-Content -Raw -Path .\src\package.json | ConvertFrom-Json).dependencies.keytar |
||||
$nodeModVersion = node -e "console.log(process.config.variables.node_module_version)" |
||||
$keytarTar = "keytar-v${keytarVersion}-node-v${nodeModVersion}-{0}-x64.tar" |
||||
$keytarTarGz = "${keytarTar}.gz" |
||||
$keytarUrl = "https://github.com/atom/node-keytar/releases/download/v${keytarVersion}/${keytarTarGz}" |
||||
|
||||
New-Item -ItemType directory -Path .\keytar\macos | Out-Null |
||||
New-Item -ItemType directory -Path .\keytar\linux | Out-Null |
||||
New-Item -ItemType directory -Path .\keytar\windows | Out-Null |
||||
|
||||
Invoke-RestMethod -Uri $($keytarUrl -f "darwin") -OutFile ".\keytar\macos\$($keytarTarGz -f "darwin")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "linux") -OutFile ".\keytar\linux\$($keytarTarGz -f "linux")" |
||||
Invoke-RestMethod -Uri $($keytarUrl -f "win32") -OutFile ".\keytar\windows\$($keytarTarGz -f "win32")" |
||||
|
||||
7z e ".\keytar\macos\$($keytarTarGz -f "darwin")" -o".\keytar\macos" |
||||
7z e ".\keytar\linux\$($keytarTarGz -f "linux")" -o".\keytar\linux" |
||||
7z e ".\keytar\windows\$($keytarTarGz -f "win32")" -o".\keytar\windows" |
||||
|
||||
7z e ".\keytar\macos\$($keytarTar -f "darwin")" -o".\keytar\macos" |
||||
7z e ".\keytar\linux\$($keytarTar -f "linux")" -o".\keytar\linux" |
||||
7z e ".\keytar\windows\$($keytarTar -f "win32")" -o".\keytar\windows" |
||||
} |
||||
|
||||
before_build: |
||||
- node --version |
||||
- npm --version |
||||
|
||||
build_script: |
||||
- cmd: | |
||||
if defined VER_INFO ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action delete -mask ICONGROUP,1, |
||||
if defined VER_INFO ResourceHacker -open version-info.rc -save version-info.res -action compile |
||||
if defined VER_INFO ResourceHacker -open %WIN_PKG% -save %WIN_PKG% -action addoverwrite -resource version-info.res |
||||
- sh: npm install |
||||
- sh: npm run rebuild |
||||
- sh: npm run dist:lin |
||||
- cmd: npm install |
||||
- cmd: npm run rebuild |
||||
- cmd: npm run dist:win:ci |
||||
- cmd: npm run reset |
||||
- cmd: npm run dist:cli |
||||
- cmd: 7z a ./dist-cli/bwdc-windows-%PACKAGE_VERSION%.zip ./dist-cli/windows/bwdc.exe ./keytar/windows/keytar.node |
||||
- cmd: 7z a ./dist-cli/bwdc-macos-%PACKAGE_VERSION%.zip ./dist-cli/macos/bwdc ./keytar/macos/keytar.node |
||||
- cmd: 7z a ./dist-cli/bwdc-linux-%PACKAGE_VERSION%.zip ./dist-cli/linux/bwdc ./keytar/linux/keytar.node |
||||
- ps: | |
||||
if($isWindows) { |
||||
Expand-Archive -Path "./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" -DestinationPath "./test/windows" |
||||
$testVersion = Invoke-Expression '& ./test/windows/bwdc.exe -v' |
||||
if($testVersion -ne $env:PACKAGE_VERSION) { |
||||
Throw "Version test failed." |
||||
} |
||||
} |
||||
- ps: | |
||||
if($isWindows) { |
||||
checksum -f="./dist-cli/bwdc-windows-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-windows-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-macos-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-macos-sha256-${env:PACKAGE_VERSION}.txt |
||||
checksum -f="./dist-cli/bwdc-linux-${env:PACKAGE_VERSION}.zip" ` |
||||
-t sha256 | Out-File ./dist-cli/bwdc-linux-sha256-${env:PACKAGE_VERSION}.txt |
||||
} |
||||
- ps: | |
||||
if($isLinux) { |
||||
Push-AppveyorArtifact ./dist/Bitwarden-Connector-${env:PACKAGE_VERSION}-x86_64.AppImage |
||||
} |
||||
else { |
||||
Push-AppveyorArtifact .\dist\Bitwarden-Connector-Portable-${env:PACKAGE_VERSION}.exe |
||||
Push-AppveyorArtifact .\dist\Bitwarden-Connector-Installer-${env:PACKAGE_VERSION}.exe |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-windows-${env:PACKAGE_VERSION}.zip |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-macos-${env:PACKAGE_VERSION}.zip |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-linux-${env:PACKAGE_VERSION}.zip |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-windows-sha256-${env:PACKAGE_VERSION}.txt |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-macos-sha256-${env:PACKAGE_VERSION}.txt |
||||
Push-AppveyorArtifact .\dist-cli\bwdc-linux-sha256-${env:PACKAGE_VERSION}.txt |
||||
} |
||||
|
||||
on_finish: |
||||
- ps: | |
||||
if($isWindows -and $env:DEBUG_RDP -eq "true") { |
||||
$blockRdp = $true |
||||
iex ((new-object net.webclient).DownloadString(` |
||||
'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) |
||||
} |
||||
|
||||
for: |
||||
- |
||||
matrix: |
||||
only: |
||||
- image: Visual Studio 2017 |
||||
cache: |
||||
- '%LOCALAPPDATA%\electron' |
||||
- '%LOCALAPPDATA%\electron-builder' |
||||
- 'C:\Users\appveyor\.pkg-cache\' |
||||
|
||||
- |
||||
matrix: |
||||
only: |
||||
- image: Ubuntu1804 |
||||
cache: |
||||
- '/home/appveyor/.cache/electron' |
||||
- '/home/appveyor/.cache/electron-builder' |
||||
|
||||
deploy: |
||||
tag: $(APPVEYOR_REPO_TAG_NAME) |
||||
release: $(RELEASE_NAME) |
||||
provider: GitHub |
||||
auth_token: $(GH_TOKEN) |
||||
artifact: /.*\.(zip|txt)/, |
||||
force_update: true |
||||
on: |
||||
branch: master |
||||
APPVEYOR_REPO_TAG: true |
||||
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
exports.default = async function(configuration) { |
||||
if ( |
||||
parseInt(process.env.ELECTRON_BUILDER_SIGN) === 1 &&
|
||||
configuration.path.slice(-4) == ".exe" |
||||
) { |
||||
console.log(`[*] Signing file: ${configuration.path}`) |
||||
require("child_process").execSync( |
||||
`azuresigntool sign ` + |
||||
`-kvu ${process.env.SIGNING_VAULT_URL} ` + |
||||
`-kvi ${process.env.SIGNING_CLIENT_ID} ` + |
||||
`-kvt ${process.env.SIGNING_TENANT_ID} ` + |
||||
`-kvs ${process.env.SIGNING_CLIENT_SECRET} ` + |
||||
`-kvc ${process.env.SIGNING_CERT_NAME} ` + |
||||
`-fd ${configuration.hash} ` + |
||||
`-du ${configuration.site} ` + |
||||
`-tr http://timestamp.digicert.com ` + |
||||
`"${configuration.path}"`, |
||||
{ |
||||
stdio: "inherit" |
||||
} |
||||
); |
||||
} |
||||
}; |
||||
Loading…
Reference in new issue