From 571e952897bc20d93ac7c38613f23b6707ab7162 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Fri, 29 Dec 2023 21:03:24 +0600 Subject: [PATCH] Initial CI --- .github/workflows/publish.yaml | 44 ++++++++++++++++++++++++++++++++++ .github/workflows/test.yaml | 29 ++++++++++++++++++++++ build.gradle.kts | 7 ++++-- src/main/kotlin/backup/main.kt | 1 + 4 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish.yaml create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 0000000..2c5829d --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,44 @@ +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 "backup_version=$VERSION" >> "$GITHUB_OUTPUT" + + - name: Build + env: + BACKUP_VERSION: ${{ steps.parse.outputs.backup_version }} + run: ./gradlew shadowJar + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ShadowJAR + path: build/libs/*-all.jar \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..8890e68 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,29 @@ +name: Test 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 diff --git a/build.gradle.kts b/build.gradle.kts index d3f475d..f2853e3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,12 @@ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + plugins { kotlin("jvm") version "1.9.21" id("com.github.johnrengelman.shadow") version "8.1.1" } -group = "net.koval" -version = "1.0-SNAPSHOT" +group = "net.koval.teamcity-executors-test-task" +version = System.getenv("BACKUP_VERSION") repositories { mavenCentral() @@ -12,6 +14,7 @@ repositories { dependencies { implementation("aws.sdk.kotlin:s3:1.0.25") + implementation("org.slf4j:slf4j-simple:2.0.9") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") testImplementation("org.jetbrains.kotlin:kotlin-test") } diff --git a/src/main/kotlin/backup/main.kt b/src/main/kotlin/backup/main.kt index f022828..c30ac14 100644 --- a/src/main/kotlin/backup/main.kt +++ b/src/main/kotlin/backup/main.kt @@ -1,6 +1,7 @@ package backup import aws.sdk.kotlin.services.s3.S3Client +import aws.sdk.kotlin.services.s3.model.ListBucketsRequest import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.runBlocking import java.io.File