name: docker-build on: push: branches: - 'master' pull_request: jobs: docker-build-n-deploy: strategy: fail-fast: true runs-on: ubuntu-20.04 if: github.repository == 'azerothcore/azerothcore-wotlk' 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/share/dotnet 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 # before cache # needed to avoid ccache injected into these images - name: Build Dev 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) docker-compose --profile dev --profile local build --parallel - name: Deploy Dev #env: # DOCKER_IMAGE_TAG: ${{ steps.extract_branch.outputs.branch }} if: ${{ steps.extract_branch.outputs.branch == 'master' }} run: | docker-compose --profile dev --profile local push - name: Login to Docker Hub if: ${{ 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 with: path: var/docker/ccache key: ccache:ubuntu-20.04:clang:without-modules:${{ github.ref }}:${{ github.sha }} restore-keys: | ccache:ubuntu-20.04:clang:without-modules:${{ github.ref }} ccache:ubuntu-20.04:clang:without-modules - name: Build Production images 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) docker-compose --profile build --profile prod build --parallel docker-compose run --no-deps --name build ac-build echo "image created" docker cp build:/azerothcore/var/ccache var/docker/ echo "ccache exported" - name: Deploy Production images #env: # DOCKER_IMAGE_TAG: ${{ steps.extract_branch.outputs.branch }} if: ${{ steps.extract_branch.outputs.branch == 'master' }} run: | docker-compose --profile prod push