version: '{build}' image: 'Visual Studio 2017' platform: x64 max_jobs: 1 environment: GOPATH: c:\go docker_username: secure: em/TNLUXxG19O/HvbvfJuQ== docker_password: secure: Yo9FJJqihaNz5q8T4Jz8tQ== branches: only: - master install: - ps: | docker version go version build_script: - ps: | if ( $env:APPVEYOR_REPO_TAG -eq 'false' ) { $version = $env:APPVEYOR_REPO_COMMIT $buildDate = $env:APPVEYOR_REPO_COMMIT_TIMESTAMP } else { $version = $env:APPVEYOR_REPO_TAG_NAME $buildDate = $env:APPVEYOR_REPO_COMMIT_TIMESTAMP } go build -a -o release/gorush.exe . docker pull microsoft/nanoserver:10.0.14393.1884 docker build -f docker/Dockerfile.windows.amd64 -t appleboy/gorush:windows-amd64 . test_script: - ps: | docker run --rm appleboy/gorush:windows-amd64 --version deploy_script: - ps: | $ErrorActionPreference = 'Stop'; if ( $env:APPVEYOR_PULL_REQUEST_NUMBER ) { Write-Host Nothing to deploy. } else { echo $env:DOCKER_PASSWORD | docker login --username $env:DOCKER_USERNAME --password-stdin if ( $env:APPVEYOR_REPO_TAG -eq 'true' ) { $major,$minor,$patch = $env:APPVEYOR_REPO_TAG_NAME.split('.') docker push appleboy/gorush:windows-amd64 docker tag appleboy/gorush:windows-amd64 appleboy/gorush:$major.$minor.$patch-windows-amd64 docker push appleboy/gorush:$major.$minor.$patch-windows-amd64 docker tag appleboy/gorush:windows-amd64 appleboy/gorush:$major.$minor-windows-amd64 docker push appleboy/gorush:$major.$minor-windows-amd64 docker tag appleboy/gorush:windows-amd64 appleboy/gorush:$major-windows-amd64 docker push appleboy/gorush:$major-windows-amd64 } else { if ( $env:APPVEYOR_REPO_BRANCH -eq 'master' ) { docker push appleboy/gorush:windows-amd64 } } }