Initial publish (#2)
CI for publishing library to gitea packages on tag. Reviewed-on: #2
This commit is contained in:
		
							
								
								
									
										40
									
								
								.github/workflows/publish.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/publish.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
name: Publish Workflow
 | 
			
		||||
on:
 | 
			
		||||
  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: 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: ${{ steps.parse.outputs.tinyvm_version }}
 | 
			
		||||
          GITEA_USERNAME: ${{ github.repository_owner }}
 | 
			
		||||
          GITEA_TOKEN: ${{ secrets.deploy_token }}
 | 
			
		||||
        run: ./gradlew publishAllPublicationsToGiteaRepository
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
name: Main Workflow
 | 
			
		||||
name: Test Workflow
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    branches:
 | 
			
		||||
@@ -16,7 +16,7 @@ jobs:
 | 
			
		||||
      - name: Set up Java
 | 
			
		||||
        uses: actions/setup-java@v3
 | 
			
		||||
        with:
 | 
			
		||||
          distribution: 'adopt'
 | 
			
		||||
          distribution: adopt
 | 
			
		||||
          java-version: 17
 | 
			
		||||
 | 
			
		||||
      - name: Verify Gradle wrapper
 | 
			
		||||
@@ -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<MavenPublication>("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")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user