image: - Visual Studio 2019 - Ubuntu1804 branches: except: - l10n_master - gh-pages configuration: Release stack: node 10 init: - sh: | if [ "${DEBUG_SSH}" == "true" ] then curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e - fi - 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')) } - ps: | if($env:APPVEYOR_REPO_TAG -eq "true") { $tagName = $env:APPVEYOR_REPO_TAG_NAME.TrimStart("v") $env:RELEASE_NAME = "Version ${tagName}" } install: - sh: | curl -sflL 'https://raw.githubusercontent.com/appveyor/secure-file/master/install.sh' | bash -e - ./appveyor-tools/secure-file -decrypt ./store/fdroid/keystore.jks.enc -secret $FDROID_KEYSTORE_ENC_PASSWORD - sh: npm install - sh: | sudo apt-get -qq update sudo apt-get -qqy install --no-install-recommends fdroidserver wget - sh: | if [ "${APPVEYOR_REPO_TAG}" == "true" -a "${GH_TOKEN}" != "" ] then git config --global credential.helper store echo "https://${GH_TOKEN}:x-oauth-basic@github.com" >> ~/.git-credentials git config --global user.email "ci@bitwarden.com" git config --global user.name "Bitwarden CI" fi - cmd: choco install cloc --no-progress - cmd: "cloc --vcs git --exclude-dir Resources,store,test,Properties --include-lang C#,XAML" #- cmd: appveyor DownloadFile https://dist.nuget.org/win-x86-commandline/latest/nuget.exe #- cmd: appveyor DownloadFile https://aka.ms/vs/15/release/vs_community.exe #- cmd: vs_community.exe update --wait --quiet --norestart --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community" #- cmd: ps: .\src\Android\update-android.ps1 before_build: - ps: | if($isWindows) { nuget restore if($env:KEYSTORE_DEC_SECRET -or $env:GOOGLE_SERVICES_DEC_SECRET -or $env:PLAY_DEC_SECRET) { nuget install secure-file -ExcludeVersion } if($env:GOOGLE_SERVICES_DEC_SECRET) { secure-file\tools\secure-file -decrypt src\Android\google-services.json.enc ` -secret $env:GOOGLE_SERVICES_DEC_SECRET } } build_script: - sh: | if [ "${APPVEYOR_REPO_TAG}" == "true" ] then mkdir dist cp CNAME ./dist cd store chmod 600 fdroid/config.py fdroid/keystore.jks mkdir -p temp/fdroid TEMP_DIR="$APPVEYOR_BUILD_FOLDER/store/temp/fdroid" cd fdroid echo "keypass=\"$FDROID_KEYSTORE_PASSWORD\"" >>config.py echo "keystorepass=\"$FDROID_KEYSTORE_PASSWORD\"" >>config.py echo "local_copy_dir=\"$TEMP_DIR\"" >>config.py mkdir -p repo curl -Lo repo/com.x8bit.bitwarden-fdroid.apk \ https://github.com/bitwarden/mobile/releases/download/$APPVEYOR_REPO_TAG_NAME/com.x8bit.bitwarden-fdroid.apk fdroid update fdroid server update cd .. rm -rf temp/fdroid/archive mv -v temp/fdroid ../dist cd fdroid cp index.html btn.png qr.png ../../dist/fdroid cd $APPVEYOR_BUILD_FOLDER fi - ps: | if($isWindows -and $env:KEYSTORE_DEC_SECRET) { msbuild bitwarden-mobile.sln ` "/logger:C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" ` "/p:Configuration=Release" if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } .\src\Android\ci-build-apks.ps1 if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } Push-AppveyorArtifact .\com.x8bit.bitwarden.apk Push-AppveyorArtifact .\com.x8bit.bitwarden-fdroid.apk } on_success: - sh: | if [ "${APPVEYOR_REPO_TAG}" == "true" -a "${GH_TOKEN}" != "" ] then npm run deploy fi - ps: | if($isWindows -and $env:PLAY_DEC_SECRET) { secure-file\tools\secure-file -decrypt store\google\Publisher\play_creds.json.enc -secret $env:PLAY_DEC_SECRET cd store\google\Publisher\bin\Release\netcoreapp2.0 dotnet Publisher.dll ` $env:APPVEYOR_BUILD_FOLDER\store\google\Publisher\play_creds.json ` $env:APPVEYOR_BUILD_FOLDER\com.x8bit.bitwarden.apk ` alpha cd $env:APPVEYOR_BUILD_FOLDER } on_finish: - sh: | if [ "${DEBUG_SSH}" == "true" ] then export APPVEYOR_SSH_BLOCK=true curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e - fi - 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')) } deploy: tag: $(APPVEYOR_REPO_TAG_NAME) release: $(RELEASE_NAME) provider: GitHub auth_token: $(GH_TOKEN) artifact: /.*/ force_update: true on: branch: master APPVEYOR_REPO_TAG: true