diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index c8b8e31..b322598 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,45 +13,14 @@ jobs: runs-on: ubuntu-latest 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: Login to GHCR - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Login to Docker Hub - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - username: ${{secrets.DOCKER_HUB_USERNAME}} - password: ${{secrets.DOCKER_HUB_PASSWORD}} - - name: Docker meta - id: yt-dlp-web-ui - uses: docker/metadata-action@v3 - with: - images: | - yt-dlp-web-ui - tags: | - type=schedule - type=ref,event=branch - type=ref,event=pr - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - type=sha - - name: Build and push - uses: docker/build-push-action@v2 - with: - context: . - platforms: linux/amd64,linux/arm/v7,linux/arm/64 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.yt-dlp-web-ui.outputs.tags }} - labels: ${{ steps.yt-dlp-web-ui.outputs.labels }} \ No newline at end of file + - uses: actions/checkout@v2 + - name: Login to Docker Hub + env: + DOCKER_USER: ${{secrets.DOCKER_HUB_USERNAME}} + DOCKER_PASSWORD: ${{secrets.DOCKER_HUB_PASSWORD}} + run: | + docker login -u $DOCKER_USER -p $DOCKER_PASSWORD + - name: Build the Docker image + run: docker build . --file Dockerfile --tag ${{secrets.DOCKER_HUB_USERNAME}}/yt-dlp-webui:latest + - name: Publish the Docker image + run: docker push ${{secrets.DOCKER_HUB_USERNAME}}/yt-dlp-webui:latest diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 056b71e..b2a0aa8 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -1,93 +1,96 @@ -# name: Docker +name: Docker -# # This workflow uses actions that are not certified by GitHub. -# # They are provided by a third-party and are governed by -# # separate terms of service, privacy policy, and support -# # documentation. +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. -# on: -# # schedule: -# # - cron: '39 13 * * *' -# push: -# branches: [ master ] -# # Publish semver tags as releases. -# tags: [ 'v*.*.*' ] -# pull_request: -# branches: [ master ] +on: +# schedule: +# - cron: '39 13 * * *' + push: + branches: [ master ] + # Publish semver tags as releases. + tags: [ 'v*.*.*' ] + pull_request: + branches: [ master ] -# env: -# # Use docker.io for Docker Hub if empty -# REGISTRY: ghcr.io -# # github.repository as / -# IMAGE_NAME: ${{ github.repository }} +env: + # Use docker.io for Docker Hub if empty + REGISTRY: ghcr.io + # github.repository as / + IMAGE_NAME: ${{ github.repository }} -# jobs: -# build: +jobs: + build: -# runs-on: ubuntu-latest -# permissions: -# contents: read -# packages: write -# # This is used to complete the identity challenge -# # with sigstore/fulcio when running outside of PRs. -# id-token: write + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write -# steps: -# - name: Checkout repository -# uses: actions/checkout@v2 + steps: + - name: Checkout repository + uses: actions/checkout@v2 -# # Install the cosign tool except on PR -# # https://github.com/sigstore/cosign-installer -# - name: Install cosign -# if: github.event_name != 'pull_request' -# uses: sigstore/cosign-installer@1e95c1de343b5b0c23352d6417ee3e48d5bcd422 -# with: -# cosign-release: 'v1.4.0' + # Install the cosign tool except on PR + # https://github.com/sigstore/cosign-installer + - name: Install cosign + if: github.event_name != 'pull_request' + uses: sigstore/cosign-installer@1e95c1de343b5b0c23352d6417ee3e48d5bcd422 + with: + cosign-release: 'v1.4.0' -# # Workaround: https://github.com/docker/build-push-action/issues/461 -# - name: Setup Docker buildx -# uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf + # Workaround: https://github.com/docker/build-push-action/issues/461 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Setup Docker buildx + uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf -# # Login against a Docker registry except on PR -# # https://github.com/docker/login-action -# - name: Log into registry ${{ env.REGISTRY }} -# if: github.event_name != 'pull_request' -# uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c -# with: -# registry: ${{ env.REGISTRY }} -# username: ${{ github.actor }} -# password: ${{ secrets.GITHUB_TOKEN }} + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Log into registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} -# # Extract metadata (tags, labels) for Docker -# # https://github.com/docker/metadata-action -# - name: Extract Docker metadata -# id: meta -# uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 -# with: -# images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} -# # Build and push Docker image with Buildx (don't push on PR) -# # https://github.com/docker/build-push-action -# - name: Build and push Docker image -# id: build-and-push -# uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc -# with: -# context: . -# push: ${{ github.event_name != 'pull_request' }} -# tags: ${{ steps.meta.outputs.tags }} -# labels: ${{ steps.meta.outputs.labels }} + # Build and push Docker image with Buildx (don't push on PR) + # https://github.com/docker/build-push-action + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + platforms: linux/amd64,linux/arm/v7,linux/arm64 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} -# # Sign the resulting Docker image digest except on PRs. -# # This will only write to the public Rekor transparency log when the Docker -# # repository is public to avoid leaking data. If you would like to publish -# # transparency data even for private images, pass --force to cosign below. -# # https://github.com/sigstore/cosign -# - name: Sign the published Docker image -# if: ${{ github.event_name != 'pull_request' }} -# env: -# COSIGN_EXPERIMENTAL: "true" -# # This step uses the identity token to provision an ephemeral certificate -# # against the sigstore community Fulcio instance. -# run: cosign sign ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }} + # Sign the resulting Docker image digest except on PRs. + # This will only write to the public Rekor transparency log when the Docker + # repository is public to avoid leaking data. If you would like to publish + # transparency data even for private images, pass --force to cosign below. + # https://github.com/sigstore/cosign + - name: Sign the published Docker image + if: ${{ github.event_name != 'pull_request' }} + env: + COSIGN_EXPERIMENTAL: "true" + # This step uses the identity token to provision an ephemeral certificate + # against the sigstore community Fulcio instance. + run: cosign sign ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}