From e84ea41dd7964104a1194d77ff1f26eb3893e78c Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Fri, 1 Dec 2023 23:17:03 +0000 Subject: [PATCH 1/5] Initial publish --- .github/workflows/main.yaml | 30 +++++++++++++++++++++++++++- build.gradle.kts | 40 +++++++++++++++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 154291f..6fa97d1 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -6,6 +6,8 @@ on: push: branches: - main + tags: + - v* jobs: lint-and-test: name: Lint and test library @@ -26,4 +28,30 @@ jobs: uses: gradle/gradle-build-action@v2 - name: Run checks - run: ./gradlew check \ No newline at end of file + run: ./gradlew check + publish: + name: Publish package + runs-on: ubuntu-latest + needs: + - lint-and-test + steps: + - uses: actions/checkout@v4 + + - name: Set up Java + uses: actions/setup-java@v3 + with: + distribution: 'adopt' + java-version: 17 + + - name: Verify Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Publish to Gitea package repository + env: + TINYVM_VERSION: "0.0.0" # testing for now + GITEA_USERNAME: ${{ github.repository_owner }} + GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} + run: ./gradlew publishAllPublicationsToGiteaRepository \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 5f55b92..87d286d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,11 @@ plugins { kotlin("jvm") version "1.9.21" id("org.jmailen.kotlinter") version "4.1.0" + `maven-publish` } -group = "net.koval" -version = "1.0-SNAPSHOT" +group = "net.koval.teamcity-gitea-test-task" +version = System.getenv("TINYVM_VERSION") repositories { mavenCentral() @@ -20,4 +21,39 @@ tasks.test { kotlin { jvmToolchain(17) +} + +publishing { + publications.register("gpr") { + artifactId = "tinyvm" + from(components["java"]) + pom { + name.set("TeamCity support for Gitea - Test Task - tiny version manager") + description.set("This is a small project to implement a subset of git's functionality in Kotlin and was " + + "created using the instructions below as part of my application to the JetBrains internship project " + + "\"TeamCity support for Gitea\".") + url.set("https://git.koval.net/cyclane/teamcity-gitea-test-task") + developers { + developer { + id.set("cyclane") + name.set("Gleb Koval") + email.set("gleb@koval.net") + } + } + scm { + url.set("https://git.koval.net/cyclane/teamcity-gitea-test-task") + } + } + } + + repositories { + maven { + name = "Gitea" + url = uri("https://git.koval.net/api/packages/cyclane/maven") + credentials { + username = System.getenv("GITEA_USERNAME") + password = System.getenv("GITEA_TOKEN") + } + } + } } \ No newline at end of file -- 2.40.1 From cc64e21615ce1cd20aed5f7617250f09aa350f14 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sat, 2 Dec 2023 00:12:09 +0000 Subject: [PATCH 2/5] Cleanup workflows, fix deploy token --- .github/workflows/main.yaml | 57 ------------------------------------- .github/workflows/test.yaml | 29 +++++++++++++++++++ 2 files changed, 29 insertions(+), 57 deletions(-) delete mode 100644 .github/workflows/main.yaml create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml deleted file mode 100644 index 6fa97d1..0000000 --- a/.github/workflows/main.yaml +++ /dev/null @@ -1,57 +0,0 @@ -name: Main Workflow -on: - pull_request: - branches: - - main - push: - branches: - - main - tags: - - v* -jobs: - lint-and-test: - name: Lint and test library - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Java - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: 17 - - - name: Verify Gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Run checks - run: ./gradlew check - publish: - name: Publish package - runs-on: ubuntu-latest - needs: - - lint-and-test - steps: - - uses: actions/checkout@v4 - - - name: Set up Java - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: 17 - - - name: Verify Gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: Setup Gradle - uses: gradle/gradle-build-action@v2 - - - name: Publish to Gitea package repository - env: - TINYVM_VERSION: "0.0.0" # testing for now - GITEA_USERNAME: ${{ github.repository_owner }} - GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} - run: ./gradlew publishAllPublicationsToGiteaRepository \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..b508d48 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,29 @@ +name: Main Workflow +on: + pull_request: + branches: + - main + push: + branches: + - main +jobs: + lint-and-test: + name: Lint and test library + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Java + uses: actions/setup-java@v3 + with: + distribution: adopt + java-version: 17 + + - name: Verify Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Run checks + run: ./gradlew check \ No newline at end of file -- 2.40.1 From da23105fe345d85f4a5d0dc873d136cd575f24ac Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sat, 2 Dec 2023 00:14:01 +0000 Subject: [PATCH 3/5] Change trigger for testing --- .github/workflows/test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index b508d48..8890e68 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,4 +1,4 @@ -name: Main Workflow +name: Test Workflow on: pull_request: branches: -- 2.40.1 From c9a19c929d27d9d36ad83af8af7048c28768fd4b Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sat, 2 Dec 2023 00:18:21 +0000 Subject: [PATCH 4/5] Commit publish workflow --- .github/workflows/publish.yaml | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/publish.yaml diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 0000000..366afa1 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,36 @@ +name: Publish Workflow +on: + pull_request: # testing for now + branches: + - main + push: + tags: + - v* +jobs: + publish: + name: Publish library + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Java + uses: actions/setup-java@v3 + with: + distribution: adopt + java-version: 17 + + - name: Verify Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Run checks + run: ./gradlew check + + - name: Publish to Gitea package repository + env: + TINYVM_VERSION: "0.0.0" # testing for now + GITEA_USERNAME: ${{ github.repository_owner }} + GITEA_TOKEN: ${{ secrets.deploy_token }} + run: ./gradlew publishAllPublicationsToGiteaRepository \ No newline at end of file -- 2.40.1 From 11e0b039046870f8a58a01ae12c727a50d299d37 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sat, 2 Dec 2023 00:47:01 +0000 Subject: [PATCH 5/5] Parse version from tag --- .github/workflows/publish.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 366afa1..c212da8 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,8 +1,5 @@ name: Publish Workflow on: - pull_request: # testing for now - branches: - - main push: tags: - v* @@ -28,9 +25,16 @@ jobs: - name: Run checks run: ./gradlew check + - name: Parse parameters + id: parse + run: | + export VERSION="$(echo ${{ github.ref_name }} | cut -c2-)" + echo "Parsed version: '$VERSION'" + echo "tinyvm_version=$VERSION" >> "$GITHUB_OUTPUT" + - name: Publish to Gitea package repository env: - TINYVM_VERSION: "0.0.0" # testing for now + TINYVM_VERSION: ${{ steps.parse.outputs.tinyvm_version }} GITEA_USERNAME: ${{ github.repository_owner }} GITEA_TOKEN: ${{ secrets.deploy_token }} run: ./gradlew publishAllPublicationsToGiteaRepository \ No newline at end of file -- 2.40.1