name: Build and Push Distroless Flood on: 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 }} run: | test -n "$FLOOD_VERSION" || { echo "flood_version is required" >&2; exit 1; } 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 cp build/runtime-root.py flood-repo/.ci-runtime-root.py cp tests/startup.cjs flood-repo/.ci-startup.cjs 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 }}