Migrate Flood container publishing to Gitea Actions
Build and Push Custom Flood Image / build (push) Successful in 46s
Build and Push Custom Flood Image / build (push) Successful in 46s
This commit is contained in:
1 parent
4267ac56e4
commit
1c37ec4e96
3 files changed
+88
-52
No files matched your search
@@ -0,0 +1,70 @@
|
|||||||
|
name: Build and Push Custom Flood Image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
flood_version:
|
||||||
|
description: 'jesec/flood release tag'
|
||||||
|
required: true
|
||||||
|
default: 'v4.16.2'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: kube
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
env:
|
||||||
|
DOCKER_BUILD_RECORD_UPLOAD: 'false'
|
||||||
|
DOCKER_BUILD_SUMMARY: 'false'
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: https://github.com/actions/checkout@v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
|
- name: Fetch Flood release
|
||||||
|
env:
|
||||||
|
FLOOD_VERSION: ${{ github.event.inputs.flood_version || 'v4.16.2' }}
|
||||||
|
run: |
|
||||||
|
git check-ref-format "refs/tags/$FLOOD_VERSION"
|
||||||
|
git init flood-repo
|
||||||
|
git -C flood-repo fetch --depth=1 https://github.com/jesec/flood.git "refs/tags/$FLOOD_VERSION"
|
||||||
|
git -C flood-repo checkout --detach FETCH_HEAD
|
||||||
|
cp Dockerfile.client flood-repo/Dockerfile.client
|
||||||
|
printf '\n.git\n.github\n.env\n' >> flood-repo/.dockerignore
|
||||||
|
|
||||||
|
- name: Install Docker CLI
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y --no-install-recommends docker.io
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: https://github.com/docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up temporary builder
|
||||||
|
uses: https://github.com/docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
driver: docker-container
|
||||||
|
cache-binary: false
|
||||||
|
keep-state: false
|
||||||
|
cleanup: true
|
||||||
|
|
||||||
|
- name: Build and push to Docker Hub
|
||||||
|
uses: https://github.com/docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: ./flood-repo
|
||||||
|
file: ./flood-repo/Dockerfile.client
|
||||||
|
platforms: linux/amd64
|
||||||
|
pull: true
|
||||||
|
push: true
|
||||||
|
load: false
|
||||||
|
tags: docker.io/k2patel/floodui:latest
|
||||||
|
labels: |
|
||||||
|
org.opencontainers.image.source=https://git.k2patel.in/k2patel/docker-flood-client
|
||||||
|
org.opencontainers.image.revision=${{ github.sha }}
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
name: Build and Push Custom Flood Image
|
|
||||||
|
|
||||||
# This workflow is manually triggered from the "Actions" tab in GitHub.
|
|
||||||
# It requires a single input: the version tag of the flood repository to use.
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
flood_version:
|
|
||||||
description: 'New release version for jesec/flood (e.g., v4.4.1)'
|
|
||||||
required: true
|
|
||||||
type: string
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build_and_push_image:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
# Step 1: Checkout the current repository (where this workflow and Dockerfile.client live)
|
|
||||||
- name: Checkout custom Dockerfile repo
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Step 2: Checkout the flood repository to the specified version
|
|
||||||
# The checkout will be placed in a subdirectory called 'flood-repo'
|
|
||||||
- name: Checkout jesec/flood release
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: jesec/flood
|
|
||||||
ref: ${{ github.event.inputs.flood_version }}
|
|
||||||
path: flood-repo
|
|
||||||
|
|
||||||
# Step 3: Copy the custom Dockerfile into the flood repository's directory
|
|
||||||
- name: Copy custom Dockerfile
|
|
||||||
run: cp Dockerfile.client ./flood-repo/Dockerfile.client
|
|
||||||
|
|
||||||
# Step 4: Login to Docker Hub using the secrets
|
|
||||||
- name: Log in to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKER_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKER_TOKEN }}
|
|
||||||
|
|
||||||
# Step 5: Build and push the Docker image
|
|
||||||
# This assumes a docker-compose.yml exists in flood-repo and uses Dockerfile.
|
|
||||||
# It will build, tag, and push the image to your Docker Hub account.
|
|
||||||
- name: Build and push with Docker Compose
|
|
||||||
working-directory: ./flood-repo
|
|
||||||
run: |
|
|
||||||
# Use the 'docker compose' command to build and push the image.
|
|
||||||
# The image is tagged with the version provided in the workflow input.
|
|
||||||
# You might need to adjust the service name (e.g., 'flood') to match your docker-compose.yml
|
|
||||||
docker buildx build -t 'k2patel/floodui' -f ./Dockerfile.client .
|
|
||||||
docker push 'k2patel/floodui'
|
|
||||||
@@ -1,2 +1,19 @@
|
|||||||
# docker-flood-client
|
# docker-flood-client
|
||||||
Flood Client only
|
|
||||||
|
Flood client image. Source: https://git.k2patel.in/k2patel/docker-flood-client
|
||||||
|
|
||||||
|
Public access is read-only; account registration on this server is disabled.
|
||||||
|
Report issues at https://github.com/k2patel/docker-flood-client/issues.
|
||||||
|
For contributions, open an issue with a link to your branch or patch on another
|
||||||
|
Git provider. Changes are reviewed and applied by the maintainer on Gitea.
|
||||||
|
|
||||||
|
Gitea Actions publishes `docker.io/k2patel/floodui:latest` on pushes to `main`
|
||||||
|
and manual runs. The default Flood release is `v4.16.2`; manual runs can select
|
||||||
|
another release with `flood_version`. Builds use the custom `Dockerfile.client`.
|
||||||
|
|
||||||
|
Set Actions secrets `DOCKER_USERNAME` and `DOCKER_TOKEN` with Docker Hub write
|
||||||
|
access to `k2patel/floodui`. Builds run remotely on the Kubernetes runner for
|
||||||
|
`linux/amd64`, pushing directly to Docker Hub. Images are not loaded into the
|
||||||
|
runner image store, and the temporary builder and cache are removed afterward.
|
||||||
|
No image archives or build records are uploaded to Gitea, and no local container
|
||||||
|
builds are required.
|
||||||
Reference in new issue
Block a user