ModuleCI - это проект на Kotlin, который позволяет загружать файлы на удаленный сервер через SFTP, используя SSH-ключи для аутентификации. Конфигурация проекта хранится в файле конфигурации, который читается с помощью библиотеки typesafe-config.
- JDK 17 - явных зависимостей от версии нет
- Gradle
- Интернет-соединение для загрузки зависимостей
-
Клонируйте репозиторий:
git clone <URL репозитория> cd ModuleCI
-
Синхронизируйте проект с Gradle:
./gradlew build
- Создайте файл конфигурации
config.confсо следующим содержимым:CI { host = "example.com" port = 22 user = "username" privateKey = "path/to/private/key" remoteDir = "/remote/directory" }
где host - адрес удаленного сервера, port - порт, user - имя пользователя, privateKey - путь к приватному ключу в формате OpenSSH, remoteDir - путь к директории на удаленном сервере куда будет сохраняться файл.
Подробнее о имени дериктории на удаленном сервере можно узнать в описании ModuleCD.
2. Добавьте в build.gradle целевого проекта следующее:
sh tasks.register("runCmdScript") { dependsOn("test") // Опционально, задача shadowJar зависит от задачи test doLast { val jarFile = project.extra["jarFile"] as File // Передача параметров в bat-файл exec { commandLine("cmd", "/c", "<patch to scrypt file>/CI-SCRYPT.bat ${project.projectDir}/build/libs/${jarFile.name} ${project.projectDir}") } } }
где <localFile> - путь к локальному файлу, который нужно загрузить на сервер, а <configPath> - путь к файлу конфигурации.
Проект использует следующие библиотеки:
com.typesafe:config:1.4.2- для работы с конфигурационными файламиcom.hierynomus:sshj:0.39.0- для работы с SSH и SFTPorg.slf4j:slf4j-api:2.0.16- для логированияch.qos.logback:logback-classic:1.5.12- реализация логирования
Этот проект лицензирован под лицензией MIT. Подробности см. в файле LICENSE.