Files
cloud-sync/.gitea/workflows/ci.yaml
T
claude-timemachine 6ab43a168e
CI / build (push) Failing after 24s
CI / release (push) Has been skipped
initial: Kotlin/Gradle skeleton for cloud-installer
Compiles to a 3.4 MB fat jar via shadow plugin.
Entrypoint with CLI dispatch (pull/push subcommands) + FlatLaf init.
Real sync logic stubbed; lands in subsequent commits per task plan.

Build via containerized gradle (8.10.2 + jdk21) to sidestep the
Kotlin 2.1 + JDK 26 compiler crash. Documented in README.

CI workflow tags-only release artifact upload prepared (needs
RELEASE_TOKEN secret in repo settings before first tag).
2026-06-02 20:16:40 +02:00

60 lines
1.7 KiB
YAML

name: CI
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 15
container:
image: docker.io/gradle:8.10.2-jdk21
steps:
- uses: actions/checkout@v4
- name: Build fat jar
run: gradle --no-daemon shadowJar
- name: Test
run: gradle --no-daemon test
- name: Stash jar for release
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/upload-artifact@v4
with:
name: cloud-installer-jar
path: build/libs/cloud-installer-*.jar
release:
runs-on: ubuntu-latest
needs: build
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: cloud-installer-jar
path: build/libs/
- name: Publish release
run: |
gh_token="${{ secrets.RELEASE_TOKEN }}"
tag="${GITEA_REF#refs/tags/}"
curl -sS -X POST \
-H "Authorization: token ${gh_token}" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"${tag}\",\"name\":\"${tag}\",\"draft\":false,\"prerelease\":false}" \
"${GITEA_SERVER_URL}/api/v1/repos/${{ gitea.event.repository.full_name }}/releases" > /tmp/release.json
release_id=$(jq -r .id /tmp/release.json)
for jar in build/libs/cloud-installer-*.jar; do
curl -sS -X POST \
-H "Authorization: token ${gh_token}" \
-F "attachment=@${jar}" \
"${GITEA_SERVER_URL}/api/v1/repos/${{ gitea.event.repository.full_name }}/releases/${release_id}/assets?name=$(basename $jar)"
done