From 18d47d253b7d438d25bd040b9148142b53ef9101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 15 Mar 2026 09:09:30 +0000 Subject: [PATCH] modified: .gitea/workflows/ docker-image.deploy.yml --- .../actions/buildkit-build-push/action.yaml | 57 +++++++++++++++++++ .gitea/actions/kubectl-setup/action.yaml | 54 ++++++++++++++++++ .gitea/workflows/ docker-image.deploy.yml | 2 +- 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 .gitea/actions/buildkit-build-push/action.yaml create mode 100644 .gitea/actions/kubectl-setup/action.yaml diff --git a/.gitea/actions/buildkit-build-push/action.yaml b/.gitea/actions/buildkit-build-push/action.yaml new file mode 100644 index 0000000..562a92b --- /dev/null +++ b/.gitea/actions/buildkit-build-push/action.yaml @@ -0,0 +1,57 @@ +name: BuildKit Build and Deploys +description: "Build and deploy images" + +inputs: + registry_addr: + description: registry address + required: true + registry_username: + description: "registry username" + required: true + registry_password: + description: "registry password" + required: true + buildkit_addr: + description: "buildkit address" + required: true + tags: + description: "image tags / buildctl image name" + required: true + context: + description: "buildctl build context" + required: false + default: "." + dockerfile: + description: "buildctl build dockerfile/folder" + required: true + default: "." +runs: + using: "composite" + steps: + - name: Authenticate to Gitea registry + shell: bash + run: | + # Create a temporary file inside GITHUB_TEMP + DOCKER_CONFIG_FILE="${RUNNER_TEMP}/docker_config.json" + + # Ensure cleanup ALWAYS happens + trap 'rm -f "$DOCKER_CONFIG_FILE"' EXIT + + # Generate auth entry + AUTH=$(printf "%s" "${{ inputs.registry_username }}:${{ inputs.registry_password }}" | base64 -w 0) + + printf '{"auths":{"%s":{"auth":"%s"}}}' \ + "${{ inputs.registry_addr }}" \ + "$AUTH" \ + > "$DOCKER_CONFIG_FILE" + + # Run BuildKit build + buildctl \ + --addr ${{ inputs.buildkit_addr }} \ + build \ + --frontend=dockerfile.v0 \ + --local context=${{ inputs.context }} \ + --local dockerfile=${{ inputs.dockerfile }} \ + --opt filename=Dockerfile \ + --output type=image,name=${{ inputs.tags }},push=true,registry.config=$RUNNER_TEMP + diff --git a/.gitea/actions/kubectl-setup/action.yaml b/.gitea/actions/kubectl-setup/action.yaml new file mode 100644 index 0000000..af668a5 --- /dev/null +++ b/.gitea/actions/kubectl-setup/action.yaml @@ -0,0 +1,54 @@ +name: Setup kubectl +description: "Reads kube config from inputs and sets kube config" + +inputs: + kube_server: + description: "Kubernetes server address" + required: true + kube_ca_base64: + description: "Base64 encoded CA cert" + required: true + kube_token: + description: "Kubernetes token" + required: true + test_connection: + description: "If 'true', a curl is executed to test connection" + required: false + default: "false" +runs: + using: "composite" + steps: + - name: Create kubeconfig + shell: bash + run: | + mkdir -p "${GITHUB_TEMP}/.kube" + cat > "${GITHUB_TEMP}/.kube/config" <> "${GITHUB_ENV}" + + - name: Test connection + if: ${{ inputs.test_connection == 'true' }} + shell: bash + run: | + echo "Testing connection to cluster..." + curl -ksS \ + --cacert <(echo "${{ inputs.kube_ca_base64 }}" | base64 -d) \ + -H "Authorization: Bearer ${{ inputs.kube_token }}" \ + ${{ inputs.kube_server }}/version \ No newline at end of file diff --git a/.gitea/workflows/ docker-image.deploy.yml b/.gitea/workflows/ docker-image.deploy.yml index a0432b1..850a577 100644 --- a/.gitea/workflows/ docker-image.deploy.yml +++ b/.gitea/workflows/ docker-image.deploy.yml @@ -23,7 +23,7 @@ jobs: curl -fsSL https://git.limbosolutions.com/kb/gitea/raw/branch/main/cloud-scripts/setup-limbo-actions.sh | bash 2>&1 - name: Build and Push Image - uses: ./.gitea/limbo_actions/buildkit-build-push + uses: ./.gitea/actions/buildkit-build-push with: registry_addr: git.limbosolutions.com registry_username: ${{ secrets.GITLIMBO_DOCKER_REGISTRY_USERNAME }}