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(Test-Path -Path $env:WIN_PKG) { $env:VER_INFO = "true" } } install: - ps: | $env:PACKAGE_VERSION = (Get-Content -Raw -Path .\src\package.json | ConvertFrom-Json).version $env:RELEASE_NAME = "Version ${tagName}" $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) { 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 -> appveyor.yml' - '%LOCALAPPDATA%\electron-builder -> appveyor.yml' - 'C:\Users\appveyor\.pkg-cache\ -> package.json' - matrix: only: - image: Ubuntu1804 cache: - '/home/appveyor/.cache/electron -> appveyor.yml' - '/home/appveyor/.cache/electron-builder -> appveyor.yml' 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