You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
3.2 KiB
121 lines
3.2 KiB
image: |
|
- Visual Studio 2017 |
|
- Ubuntu1804 |
|
|
|
services: |
|
- docker |
|
|
|
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')) |
|
} |
|
- ps: | |
|
if($isWindows) { |
|
Install-Product node 10 |
|
} |
|
|
|
install: |
|
- ps: | |
|
$env:PROD_DEPLOY = "false" |
|
$env:TAG_NAME = "" |
|
if($env:APPVEYOR_REPO_TAG -eq "true" -and $env:APPVEYOR_RE_BUILD -eq "True") { |
|
$env:PROD_DEPLOY = "true" |
|
$env:TAG_NAME = $env:APPVEYOR_REPO_TAG_NAME.TrimStart("v") |
|
echo "This is a production deployment for ${env:TAG_NAME}." |
|
} |
|
if($isLinux) { |
|
npm i -g gulp |
|
} else { |
|
choco install cloc --no-progress |
|
cloc --include-lang C#,SQL,Razor,"Bourne Shell",PowerShell,HTML,CSS,Sass,JavaScript,TypeScript --vcs git |
|
} |
|
|
|
before_build: |
|
- sh: | |
|
if [ "${DOCKER_USERNAME}" != "" -a "${DOCKER_PASSWORD}" != "" ] |
|
then |
|
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin |
|
fi |
|
- ps: | |
|
if($isLinux) { |
|
#dotnet restore |
|
} else { |
|
msbuild /t:restore |
|
} |
|
|
|
build_script: |
|
- sh: chmod +x ./build.sh |
|
- ps: | |
|
if($isLinux) { |
|
#dotnet build --configuration Debug |
|
./build.sh |
|
./build.sh tag dev |
|
|
|
if($env:PROD_DEPLOY -eq "true") { |
|
./build.sh tag beta |
|
./build.sh tag $env:TAG_NAME |
|
} |
|
|
|
docker images |
|
./build.sh push dev |
|
|
|
if($env:PROD_DEPLOY -eq "true") { |
|
./build.sh push beta |
|
./build.sh push latest |
|
./build.sh push $env:TAG_NAME |
|
} |
|
} else { |
|
msbuild bitwarden-server.sln /p:Configuration=Debug /verbosity:minimal ` |
|
/logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" |
|
|
|
$env:swaggerGen = "true" |
|
$env:ASPNETCORE_ENVIRONMENT = "Production" |
|
cd .\src\Api |
|
dotnet swagger tofile --output ..\..\swagger.json --host api.bitwarden.com --format Indented ` |
|
.\bin\Debug\netcoreapp2.1\Api.dll public |
|
cd ..\.. |
|
$env:ASPNETCORE_ENVIRONMENT = "" |
|
$env:swaggerGen = "" |
|
Push-AppveyorArtifact .\swagger.json |
|
} |
|
- sh: | |
|
echo "Make docker stubs" |
|
STUB_OUTPUT=$(pwd)/docker-stub |
|
docker run -i --rm --name setup -v $STUB_OUTPUT:/bitwarden bitwarden/setup:dev \ |
|
dotnet Setup.dll -stub 1 -install 1 -domain bitwarden.company.com -os lin |
|
sudo chown -R appveyor:appveyor $STUB_OUTPUT |
|
rm -rf $STUB_OUTPUT/ca-certificates $STUB_OUTPUT/identity $STUB_OUTPUT/letsencrypt $STUB_OUTPUT/ssl |
|
rm $STUB_OUTPUT/env/uid.env |
|
cd docker-stub; zip -r ../docker-stub.zip *; cd .. |
|
- ps: Push-AppveyorArtifact ./docker-stub.zip |
|
|
|
|
|
after_build: |
|
- sh: docker logout |
|
|
|
test_script: |
|
- ps: | |
|
if($isWindows) { |
|
dotnet test .\test\Core.Test\Core.Test.csproj --configuration Debug --no-build |
|
} |
|
|
|
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')) |
|
} |
|
|
|
deploy: |
|
provider: GitHub |
|
auth_token: $(GH_TOKEN) |
|
artifact: /.*/ |
|
force_update: true |
|
on: |
|
branch: master |
|
PROD_DEPLOY: true
|
|
|