mirror of
https://github.com/Hopiu/lychee.git
synced 2026-03-20 06:30:24 +00:00
Since github.repository_owner refers to the base repository on pull request events, while secrets need to exist on the head repository, the Docker Hub login fails for pull requests opened from forks. This commit assures that this step in case of pull request events only runs for internal pull requests, i.e. when head and base repository are the same. For the actual Docker Hub upload, no change is required: The build can run in every case, the upload is not done on pull request events in general. Signed-off-by: MichaIng <micha@dietpi.com>
69 lines
2 KiB
YAML
69 lines
2 KiB
YAML
name: Docker
|
|
on:
|
|
repository_dispatch:
|
|
workflow_dispatch:
|
|
workflow_run:
|
|
workflows: ["release"]
|
|
types:
|
|
- completed
|
|
push:
|
|
branches:
|
|
- "**"
|
|
tags:
|
|
- "v*.*.*"
|
|
pull_request:
|
|
branches:
|
|
- "master"
|
|
|
|
env:
|
|
IMAGE_NAME: lycheeverse/lychee
|
|
DOCKER_PLATFORMS: linux/amd64,linux/arm64/v8
|
|
DOCKERFILE: Dockerfile-CI.Dockerfile
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
# list of Docker images to use as base name for tags
|
|
images: |
|
|
${{ env.IMAGE_NAME }}
|
|
# generate Docker tags based on the following events/attributes
|
|
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: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to DockerHub
|
|
if: github.repository_owner == 'lycheeverse' && github.actor != 'dependabot[bot]' && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login == github.event.pull_request.base.repo.owner.login )
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Push Image
|
|
if: github.repository_owner == 'lycheeverse'
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
file: ${{ env.DOCKERFILE }}
|
|
platforms: ${{ env.DOCKER_PLATFORMS }}
|
|
push: ${{ github.event_name != 'pull_request' && github.actor != 'dependabot[bot]' }}
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|