name: docker-build on: push: branches: - 'master' pull_request: types: - labeled - opened - synchronize - reopened concurrency: group: ${{ github.head_ref }} || concat(${{ github.ref }}, ${{ github.workflow }}) cancel-in-progress: true jobs: docker-build-n-deploy-dev: runs-on: "ubuntu-latest" if: | github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft && (github.ref_name == 'master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build') env: COMPOSE_DOCKER_CLI_BUILD: 1 DOCKER_BUILDKIT: 1 steps: - name: Free up disk space run: | sudo rm -rf /usr/local/lib/android sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4 - name: Login to Docker Hub if: github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Get version id: version run: | output=$(./acore.sh version | grep "AzerothCore Rev. ") version=${output#"AzerothCore Rev. "} echo "version=$version" >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: acore/ac-wotlk-dev-server tags: | type=raw,value=${{ steps.version.outputs.version }} type=ref,event=branch - name: Build and push uses: docker/build-push-action@v5 with: context: ${{ github.workspace }} file: apps/docker/Dockerfile.dev-server push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} tags: ${{ steps.meta.outputs.tags }} build-args: | USER_ID=1000 GROUP_ID=1000 DOCKER_USER=acore # TODO: rename this job docker-build-n-deploy-prod: runs-on: "ubuntu-latest" if: | github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft && (github.ref_name == 'master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build') env: COMPOSE_DOCKER_CLI_BUILD: 1 DOCKER_BUILDKIT: 1 steps: - name: Free up disk space run: | sudo rm -rf /usr/local/lib/android sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf "$AGENT_TOOLSDIRECTORY" - uses: actions/checkout@v4 # The containers created in this workflow are used by # acore-docker, which has a dependency on mod-eluna. # # If you're wanting containers without mod-eluna, the best solution is to # build them locally (such as with `docker compose build`) - name: Download Eluna if: github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' uses: actions/checkout@v4 with: repository: azerothcore/mod-eluna path: modules/mod-eluna - name: Login to Docker Hub if: github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Get version id: version run: | output=$(./acore.sh version | grep "AzerothCore Rev. ") version=${output#"AzerothCore Rev. "} echo "version=$version" >> $GITHUB_OUTPUT - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: build worldserver uses: ./.github/actions/docker-tag-and-build with: component-name: worldserver version: ${{ steps.version.outputs.version }} push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} - name: build authserver uses: ./.github/actions/docker-tag-and-build with: component-name: authserver version: ${{ steps.version.outputs.version }} push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} - name: build db-import uses: ./.github/actions/docker-tag-and-build with: component-name: db-import version: ${{ steps.version.outputs.version }} push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} - name: build client-data uses: ./.github/actions/docker-tag-and-build with: component-name: client-data version: ${{ steps.version.outputs.version }} push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} - name: build tools uses: ./.github/actions/docker-tag-and-build with: component-name: tools version: ${{ steps.version.outputs.version }} push: ${{ github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' }} dispatch-acore-docker: needs: [ docker-build-n-deploy-prod , docker-build-n-deploy-dev] runs-on: ubuntu-latest steps: - name: Repository Dispatch if: github.repository == 'azerothcore/azerothcore-wotlk' && github.ref_name == 'master' uses: peter-evans/repository-dispatch@v2 with: token: ${{ secrets.ACORE_DOCKER_REPO_ACCESS_TOKEN }} repository: azerothcore/acore-docker event-type: azerothcore-new-images client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'