diff --git a/.woodpecker.yml b/.woodpecker.yml index 374ec5e..c1eeecd 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -19,16 +19,15 @@ steps: from_secret: docker_password - name: update-manifests - image: alpine/git + image: alpine/curl environment: - GITEA_USER: - from_secret: docker_username - GITEA_PASS: - from_secret: docker_password + GITEA_TOKEN: + from_secret: gitea_token commands: - - 'sed -i "s#image: git.mikhailkilin.ru/killingdruid/bcard:.*#image: git.mikhailkilin.ru/killingdruid/bcard:${CI_COMMIT_SHA}#" k8s/bcard.yaml' - - git config user.email "woodpecker@ci" - - git config user.name "Woodpecker CI" - - git add k8s/bcard.yaml - - 'printf "machine git.mikhailkilin.ru\nlogin %s\npassword %s\n" "${GITEA_USER}" "${GITEA_PASS}" > ~/.netrc && chmod 600 ~/.netrc' - - 'git diff --cached --quiet && echo "No changes" || (git commit -m "[CI SKIP] deploy: ${CI_COMMIT_SHA}" && git push origin HEAD:main)' + - apk add --no-cache jq sed + - 'FILE_SHA=$(curl -sk -H "Authorization: token ${GITEA_TOKEN}" "https://git.mikhailkilin.ru/api/v1/repos/killingdruid/bcard/contents/k8s/bcard.yaml" | jq -r .sha)' + - 'CURRENT=$(curl -sk -H "Authorization: token ${GITEA_TOKEN}" "https://git.mikhailkilin.ru/api/v1/repos/killingdruid/bcard/raw/k8s/bcard.yaml")' + - 'UPDATED=$(echo "$CURRENT" | sed "s#image: git.mikhailkilin.ru/killingdruid/bcard:.*#image: git.mikhailkilin.ru/killingdruid/bcard:${CI_COMMIT_SHA}#")' + - 'NEW_CONTENT=$(echo "$UPDATED" | base64 -w 0)' + - 'curl -sk -X PUT -H "Authorization: token ${GITEA_TOKEN}" -H "Content-Type: application/json" -d "{\"content\":\"${NEW_CONTENT}\",\"message\":\"[CI SKIP] deploy: ${CI_COMMIT_SHA}\",\"sha\":\"${FILE_SHA}\"}" "https://git.mikhailkilin.ru/api/v1/repos/killingdruid/bcard/contents/k8s/bcard.yaml"' + - echo "Manifest updated successfully"