diff options
Diffstat (limited to '.github/workflows/docker_build.yml')
-rw-r--r-- | .github/workflows/docker_build.yml | 87 |
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 }}"}' |