name: Docker on: push: branches: - main - fix* - feat* paths: - "**/*.go" - "**/*.c" - "**/*.h" - "go.mod" - "go.sum" - ".github/workflows/*.yml" release: types: [ prereleased ] jobs: docker: runs-on: ubuntu-22.04 steps: - name: Checkout codebase uses: actions/checkout@v3 with: fetch-depth: 0 - name: Prepare id: prep env: REF: ${{ github.ref }} run: | if [[ "$REF" == "refs/tags/v"* ]]; then tag=$(git describe --tags $(git rev-list --tags --max-count=1)) tag=${tag:1} else tag=$(git log -1 --format="%cd" --date=short | sed s/-//g) fi echo "IMAGE=daeuniverse/dae" >> $GITHUB_OUTPUT echo "TAG=$tag" >> $GITHUB_OUTPUT - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build production image uses: docker/build-push-action@v4 with: context: . builder: ${{ steps.buildx.outputs.name }} file: Dockerfile platforms: linux/arm/v6,linux/arm/v7,linux/arm64,linux/amd64,linux/386 push: true tags: | ${{ steps.prep.outputs.IMAGE }}:${{ steps.prep.outputs.TAG }} ${{ steps.prep.outputs.IMAGE }}:latest cache-from: type=gha cache-to: type=gha,mode=max