on: push: paths: - "docker/**" - ".gitea/**" - "pbsclient/**" schedule: - cron: "0 16 * * Sun" jobs: build-image: runs-on: oci-image-builder steps: - name: Checkout code uses: actions/checkout@v4 - name: Start BuildKit run: | mkdir -p /run/buildkit mkdir -p /var/lib/buildkit buildkitd \ --addr unix:///run/buildkit/buildkitd.sock \ --oci-worker-no-process-sandbox \ --root /var/lib/buildkit \ >/tmp/buildkitd.log 2>&1 & sleep 3 - name: Dump BuildKit logs if: always() run: | echo "=== BuildKit log ===" cat /home/builder/buildkitd.log 2>/dev/null || echo "no log found" cat /tmp/buildkitd.log 2>/dev/null || echo "no log in /tmp" # - name: Check BuildKit daemon # run: | # ls -l /run/buildkit # cat /tmp/buildkitd.log || tru - name: Authenticate to Gitea registry run: | mkdir -p ~/.docker AUTH=$(printf "%s" "${{ secrets.GITLIMBO_DOCKER_REGISTRY_USERNAME }}:${{ secrets.GITLIMBO_DOCKER_REGISTRY_PASSWORD }}" | base64 -w 0) printf '{"auths":{"git.limbosolutions.com":{"auth":"%s"}}}' "$AUTH" > ~/.docker/config.json # - name: Debug paths # run: | # echo "PWD: $(pwd)" # ls -al # ls -al ./pbsclient || echo "pbsclient missing" # ls -al ./pbsclient/docker || echo "docker dir missing" - name: Build and push image run: | buildctl \ --addr unix:///run/buildkit/buildkitd.sock \ build \ --frontend=dockerfile.v0 \ --local context=./pbsclient \ --local dockerfile=./pbsclient/docker \ --opt filename=Dockerfile \ --output type=image,name=git.limbosolutions.com/kb/pbsclient:latest,push=true