Compare commits
3 Commits
v0.1.1
...
c802c76ace
Author | SHA1 | Date | |
---|---|---|---|
c802c76ace
|
|||
9f6fad8466
|
|||
571e952897
|
47
.github/workflows/publish.yaml
vendored
Normal file
47
.github/workflows/publish.yaml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Publish Workflow
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
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
|
29
.github/workflows/test.yaml
vendored
Normal file
29
.github/workflows/test.yaml
vendored
Normal file
@@ -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
|
@@ -2,6 +2,10 @@
|
||||
This is a small backup utility for uploading/restoring a local directory to/from
|
||||
an AWS S3 bucket.
|
||||
|
||||
## Usage
|
||||
This tool is released as a JAR in the [release page](https://git.koval.net/cyclane/teamcity-executors-test-task/releases).
|
||||
Use `java -jar <backup-jar-name>.jar --help` for more detailed usage instructions.
|
||||
|
||||
## Assumptions
|
||||
1. This test task is not interested in re-implementations of common libraries (AWS SDK, Clikt, Gradle Shadow, ...)
|
||||
2. The last part (restoration of a single file) should be optimised so that only the part of the blob required for this
|
||||
|
@@ -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")
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user