diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9ccad99..b0fb142 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -9,29 +9,56 @@ jobs: docker: runs-on: ubuntu-latest steps: - - - name: Set up Docker Buildx + - name: Prepare + id: prep + run: | + DOCKER_IMAGE=${{ secrets.DOCKERHUB_USERNAME }}/${GITHUB_REPOSITORY#*/} + VERSION=latest + SHORTREF=${GITHUB_SHA::8} + + # If this is git tag, use the tag name as a docker tag + if [[ $GITHUB_REF == refs/tags/* ]]; then + VERSION=${GITHUB_REF#refs/tags/v} + fi + TAGS="${DOCKER_IMAGE}:${VERSION},${DOCKER_IMAGE}:${SHORTREF}" + + # If the VERSION looks like a version number, assume that + # this is the most recent version of the image and also + # tag it 'latest'. + if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + TAGS="$TAGS,${DOCKER_IMAGE}:latest" + fi + + # Set output parameters. + echo ::set-output name=tags::${TAGS} + echo ::set-output name=docker_image::${DOCKER_IMAGE} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 + - name: Set up QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@master + - name: Login to DockerHub + uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push + - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: + builder: ${{ steps.buildx.outputs.name }} push: true - tags: tedkulp/vidgrab:latest + tags: ${{ steps.prep.outputs.tags }} + platforms: linux/amd64,linux/arm64,linux/ppc64le cache-from: type=registry,ref=tedkulp/vidgrab:latest cache-to: type=inline - - - name: git checkout + - name: git checkout uses: actions/checkout@v2 - - - name: push README to Dockerhub + - name: push README to Dockerhub uses: christian-korneck/update-container-description-action@v1 env: DOCKER_USER: ${{ secrets.DOCKERHUB_USERNAME }} @@ -40,4 +67,4 @@ jobs: destination_container_repo: tedkulp/vidgrab provider: dockerhub short_description: 'Simple web interface to download videos with youtube-dl and store them on your server' - readme_file: 'README.md' \ No newline at end of file + readme_file: 'README.md'