140 lines
4.2 KiB
YAML
140 lines
4.2 KiB
YAML
# Build and Push Docker Container
|
|
|
|
trigger:
|
|
branches:
|
|
include:
|
|
- master
|
|
paths:
|
|
exclude:
|
|
- docs/*
|
|
- tests/*
|
|
|
|
pr: none
|
|
|
|
pool:
|
|
vmImage: 'ubuntu-latest'
|
|
|
|
steps:
|
|
- task: PowerShell@2
|
|
inputs:
|
|
filePath: 'set-projectVersion.ps1'
|
|
- bash: |
|
|
#!/bin/sh
|
|
echo 'tag is $TAG'
|
|
if (curl --silent -f -lSL https://hub.docker.com/v2/repositories/munique/openmu/tags/$TAG > /dev/null) then
|
|
echo '##vso[task.setvariable variable=tagExists]true'
|
|
else
|
|
echo '##vso[task.setvariable variable=tagExists]false'
|
|
fi
|
|
env:
|
|
TAG: $(projectVersion)
|
|
- task: Docker@2
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
containerRegistry: 'munique docker hub'
|
|
command: 'login'
|
|
- task: CmdLine@2
|
|
condition: eq(variables.tagExists, 'false')
|
|
displayName: "Build and Push All-In-One Image (openmu)"
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Startup/Dockerfile \
|
|
-t munique/openmu:latest \
|
|
-t munique/openmu:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push AdminPanel Image (openmu-admin)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/AdminPanel.Host/Dockerfile \
|
|
-t munique/openmu-admin:latest \
|
|
-t munique/openmu-admin:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push ChatServer Image"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/ChatServer.Host/Dockerfile \
|
|
-t munique/openmu-chat:latest \
|
|
-t munique/openmu-chat:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push ConnectServer Image (openmu-connect)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/ConnectServer.Host/Dockerfile \
|
|
-t munique/openmu-connect:latest \
|
|
-t munique/openmu-connect:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push FriendServer Image (openmu-friend)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/FriendServer.Host/Dockerfile \
|
|
-t munique/openmu-friend:latest \
|
|
-t munique/openmu-friend:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push GameServer Image (openmu-game)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/GameServer.Host/Dockerfile \
|
|
-t munique/openmu-game:latest \
|
|
-t munique/openmu-game:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push GuildServer Image (openmu-guild)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/GuildServer.Host/Dockerfile \
|
|
-t munique/openmu-guild:latest \
|
|
-t munique/openmu-guild:$(projectVersion) \
|
|
--push \
|
|
.
|
|
- task: CmdLine@2
|
|
displayName: "Build and Push LoginServer Image (openmu-login)"
|
|
condition: eq(variables.tagExists, 'false')
|
|
inputs:
|
|
script: |
|
|
cd src
|
|
docker buildx create --use
|
|
docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 \
|
|
--file Dapr/LoginServer.Host/Dockerfile \
|
|
-t munique/openmu-login:latest \
|
|
-t munique/openmu-login:$(projectVersion) \
|
|
--push \
|
|
.
|