# 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 \ .