mirror of
https://github.com/bitwarden/server.git
synced 2024-12-24 17:17:40 +01:00
143 lines
3.7 KiB
YAML
143 lines
3.7 KiB
YAML
image:
|
|
- Visual Studio 2019
|
|
- 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:PUSH_DOCKER = "false"
|
|
$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("${env:DOCKER_USERNAME}" -ne "" -and "${env:DOCKER_PASSWORD}" -ne "") {
|
|
$env:PUSH_DOCKER = "true"
|
|
}
|
|
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
|
|
}
|
|
if($env:APPVEYOR_REPO_TAG -eq "true") {
|
|
$tagName = $env:APPVEYOR_REPO_TAG_NAME.TrimStart("v")
|
|
$env:RELEASE_NAME = "Version ${tagName}"
|
|
}
|
|
|
|
before_build:
|
|
- sh: |
|
|
if [ "${PUSH_DOCKER}" == "true" ]
|
|
then
|
|
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
|
fi
|
|
- ps: |
|
|
if($isLinux) {
|
|
#dotnet restore
|
|
} else {
|
|
msbuild /t:restore
|
|
dotnet tool 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
|
|
|
|
if($env:PUSH_DOCKER -eq "true") {
|
|
./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 https://api.bitwarden.com `
|
|
.\bin\Debug\netcoreapp3.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.example.com -os lin
|
|
sudo chown -R appveyor:appveyor $STUB_OUTPUT
|
|
rm -rf $STUB_OUTPUT/letsencrypt
|
|
rm $STUB_OUTPUT/env/uid.env $STUB_OUTPUT/config.yml
|
|
touch $STUB_OUTPUT/env/uid.env
|
|
cd docker-stub; zip -r ../docker-stub.zip *; cd ..
|
|
- ps: |
|
|
if($isLinux) {
|
|
Push-AppveyorArtifact ./docker-stub.zip
|
|
}
|
|
|
|
|
|
after_build:
|
|
- sh: |
|
|
if [ "${PUSH_DOCKER}" == "true" ]
|
|
then
|
|
docker logout
|
|
fi
|
|
|
|
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:
|
|
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
|