name: dockerhub release # build master with multi-arch to docker hub on: push: branches: - master tags: - v* jobs: buildx-dockerhub: runs-on: ubuntu-latest env: DOCKER_REPO: newfuture/ddns DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_PLATFORMS: linux/amd64,linux/arm,linux/arm64 DOCKER_REGISTRY: "" steps: - name: Checkout uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Prepare arguments id: prepare run: | DOCKER_TAGS="--tag ${DOCKER_REPO}:edge" if [[ $GITHUB_REF == refs/tags/v* ]]; then DOCKER_TAGS="--tag ${DOCKER_REPO}:latest --tag ${DOCKER_REPO}:${GITHUB_REF#refs/tags/}" fi echo ::set-output name=buildx_args:: --output "type=image,push=true" --platform ${DOCKER_PLATFORMS} ${DOCKER_TAGS} . - name: Docker login run: | echo "${DOCKER_PASSWORD}" | docker login "${DOCKER_REGISTRY}" \ --username "${DOCKER_USERNAME}" \ --password-stdin - name: Run buildx and push if: success() run: docker buildx build ${{ steps.prepare.outputs.buildx_args }} - name: Docker Hub logout if: always() run: docker logout