summaryrefslogtreecommitdiff
path: root/.github/workflows/docker_build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/docker_build.yml')
-rw-r--r--.github/workflows/docker_build.yml87
1 files changed, 69 insertions, 18 deletions
diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml
index 1c91ef860b..850f7affef 100644
--- a/.github/workflows/docker_build.yml
+++ b/.github/workflows/docker_build.yml
@@ -11,13 +11,16 @@ concurrency:
cancel-in-progress: true
jobs:
- docker-build-n-deploy:
+ docker-build-n-deploy-dev:
strategy:
fail-fast: true
matrix:
os: [ubuntu-20.04]
runs-on: ${{ matrix.os }}
- if: github.repository == 'azerothcore/azerothcore-wotlk' && (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build')
+ if: |
+ github.repository == 'azerothcore/azerothcore-wotlk'
+ && !github.event.pull_request.draft
+ && (github.ref == 'refs/heads/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
@@ -40,14 +43,6 @@ jobs:
docker --version
docker compose --version
- # TODO: make it work
- # - uses: whoan/docker-build-with-cache-action@v5
- # with:
- # image_tag: master
- # username: ${{ secrets.DOCKERHUB_USERNAME }}
- # password: ${{ secrets.DOCKERHUB_TOKEN }}
- # compose_file: docker-compose.yml
-
- name: Login to Docker Hub
if: github.repository == 'azerothcore/azerothcore-wotlk' && steps.extract_branch.outputs.branch == 'master'
uses: docker/login-action@v1
@@ -55,19 +50,17 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
- # before cache
- # needed to avoid ccache injected into these images
- name: Build Dev
if: github.repository == 'azerothcore/azerothcore-wotlk'
env:
#DOCKER_IMAGE_TAG: ${{ steps.extract_branch.outputs.branch }}
- DOCKER_EXTENDS_BIND: abstract-no-bind
DOCKER_CLIENT_TIMEOUT: 400
COMPOSE_HTTP_TIMEOUT: 400
run: |
export DOCKER_USER_ID=$(id -u)
export DOCKER_GROUP_ID=$(id -u)
+ # pull the images first to load the docker cache layers
+ ./acore.sh docker pull
./acore.sh docker build
- name: Deploy Dev
@@ -76,6 +69,47 @@ jobs:
if: github.repository == 'azerothcore/azerothcore-wotlk' && steps.extract_branch.outputs.branch == 'master'
run: |
docker compose --profile dev --profile local push
+ output=$(./acore.sh version | grep "AzerothCore Rev.") && version=${output#"AzerothCore Rev."}
+ DOCKER_IMAGE_TAG=$version docker compose --profile local push
+
+ docker-build-n-deploy-prod:
+ strategy:
+ fail-fast: true
+ matrix:
+ os: [ubuntu-20.04]
+ runs-on: ${{ matrix.os }}
+ if: |
+ github.repository == 'azerothcore/azerothcore-wotlk'
+ && !github.event.pull_request.draft
+ && (github.ref == 'refs/heads/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
+ BUILDKIT_INLINE_CACHE: 1
+
+ steps:
+ - name: Extract branch name
+ shell: bash
+ run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
+ id: extract_branch
+
+ - uses: actions/checkout@v2
+
+ - name: Configure
+ run: |
+ sudo rm -rf /usr/local/lib/android
+ sudo rm -rf /usr/share/dotnet
+ sudo rm -rf /opt/ghc
+ sudo rm -rf "$AGENT_TOOLSDIRECTORY"
+ docker --version
+ docker compose --version
+
+ - name: Login to Docker Hub
+ if: github.repository == 'azerothcore/azerothcore-wotlk' && steps.extract_branch.outputs.branch == 'master'
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Cache
uses: actions/cache@v2
@@ -90,16 +124,17 @@ jobs:
if: github.repository == 'azerothcore/azerothcore-wotlk'
env:
#DOCKER_IMAGE_TAG: ${{ steps.extract_branch.outputs.branch }}
- DOCKER_EXTENDS_BIND: abstract-no-bind
- DOCKER_AC_BUILD_TARGET: build
DOCKER_CLIENT_TIMEOUT: 220
COMPOSE_HTTP_TIMEOUT: 220
run: |
export DOCKER_USER_ID=$(id -u)
export DOCKER_GROUP_ID=$(id -u)
+ # pull the images first to load the docker cache layers
+ ./acore.sh docker prod:pull
./acore.sh docker prod:build
- docker compose run --no-deps --name build ac-build echo "image created"
- docker cp build:/azerothcore/var/ccache var/docker/
+ # create the container to allow the copy right after
+ docker compose create ac-build-prod
+ docker compose cp ac-build-prod:/azerothcore/var/ccache var/docker/
echo "ccache exported"
- name: Deploy Production images
@@ -108,3 +143,19 @@ jobs:
if: github.repository == 'azerothcore/azerothcore-wotlk' && steps.extract_branch.outputs.branch == 'master'
run: |
docker compose --profile prod push
+ output=$(./acore.sh version | grep "AzerothCore Rev.") && version=${output#"AzerothCore Rev."}
+ DOCKER_IMAGE_TAG=$version docker compose --profile prod push
+
+
+ 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' && steps.extract_branch.outputs.branch == 'master'
+ uses: peter-evans/repository-dispatch@v2
+ with:
+ token: ${{ secrets.ACORE_DOCKER_REPO_ACCESS_TOKEN }}
+ repository: azerothcore/acore-docker
+ # event-type: my-event
+ client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'