diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index da466a7..1d27408 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -32,20 +32,27 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Docker and Skopeo - run: | - apt-get update - apt-get install -y docker.io skopeo + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod - - name: Build and Push Image + - name: Configure Registry Auth env: REGISTRY_HOST: ${{ vars.REGISTRY_HOST }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} run: | - local_image="${GITHUB_REPOSITORY##*/}:ci" - archive="/tmp/${GITHUB_REPOSITORY##*/}.tar" - docker build -t "${local_image}" . - docker save "${local_image}" -o "${archive}" - for tag in main "sha-${GITHUB_SHA}"; do - skopeo copy --dest-creds "${GITHUB_REPOSITORY_OWNER}:${REGISTRY_PASSWORD}" --dest-tls-verify=false "docker-archive:${archive}" "docker://${REGISTRY_HOST}/${GITHUB_REPOSITORY}:${tag}" - done + mkdir -p "${HOME}/.docker" + auth="$(printf '%s:%s' "${GITHUB_REPOSITORY_OWNER}" "${REGISTRY_PASSWORD}" | base64 -w0)" + printf '{"auths":{"%s":{"auth":"%s"}}}\n' "${REGISTRY_HOST}" "${auth}" > "${HOME}/.docker/config.json" + chmod 600 "${HOME}/.docker/config.json" + + - name: Install ko + run: GOBIN=/usr/local/bin go install github.com/google/ko@v0.18.0 + + - name: Build and Push Image + env: + REGISTRY_HOST: ${{ vars.REGISTRY_HOST }} + run: | + export KO_DOCKER_REPO="${REGISTRY_HOST}/${GITHUB_REPOSITORY_OWNER}" + ko build --base-import-paths --insecure-registry --sbom=none --tags "main,sha-${GITHUB_SHA}" .