diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 16a823e..c347a8d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,7 +6,8 @@ updates: schedule: interval: "weekly" ignore: - - dependency-name: "kotlin" - versions: [ "2.x" ] + - dependency-name: '*' + update-types: + - version-update:semver-major commit-message: prefix: "[deps]" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4930b5..d795623 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,10 +5,10 @@ on: branches: - master paths: - - ".github/**" - - "src/**" - - "build.gradle" - - "gradle.properties" + - .github/** + - src/** + - build.gradle + - gradle.properties jobs: build: name: Build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7f39226..d2ef4ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,8 @@ jobs: contents: write steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: actions/setup-java@v4 with: @@ -20,11 +22,20 @@ jobs: java-version: "17" cache: "gradle" - - name: Publish artefacts - run: ./gradlew publish + - name: Build and publish + run: ./gradlew clean assemble publish + + - name: Release to Maven Central + run: ./gradlew jreleaserDeploy env: - GITHUB_USER: ${{ secrets.GITHUB_USER }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVEN_USERNAME }} + JRELEASER_MAVENCENTRAL_TOKEN: ${{ secrets.MAVEN_PASSWORD }} + JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} + JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create release uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true diff --git a/.java-version b/.java-version new file mode 100644 index 0000000..98d9bcb --- /dev/null +++ b/.java-version @@ -0,0 +1 @@ +17 diff --git a/LICENSE b/LICENSE index 2a923fa..e356932 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 Romanov Alexey +Copyright (c) 2025 Romanov Alexey Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index f108af8..0ca1c59 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -[![Build project](https://github.com/Romanow/skip-method/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/Romanow/skip-method/actions/workflows/build.yml) -[![codecov](https://codecov.io/github/Romanow/skip-method/branch/master/graph/badge.svg?token=RXVXL3NUNS)](https://codecov.io/github/Romanow/skip-method) +[![CI](https://github.com/Romanow/skip-method/actions/workflows/build.yml/badge.svg)](https://github.com/Romanow/skip-method/actions/workflows/build.yml) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) +[![Release](https://img.shields.io/github/v/release/Romanow/skip-method?logo=github&sort=semver)](https://github.com/Romanow/skip-method/releases/latest) +[![Codecov](https://codecov.io/gh/Romanow/skip-method/branch/master/graph/badge.svg?token=Cckw6pHLh7)](https://codecov.io/gh/Romanow/skip-method) +[![License](https://img.shields.io/github/license/Romanow/skip-method)](https://github.com/Romanow/skip-method/blob/master/LICENSE) # Пропуск вызова метода в тестах @@ -9,6 +11,25 @@ Сделать исключение вызова конкретных методов (в коде) и заменить их значением по-умолчанию. Используется для исключения вызова методов при запуске тестов на разных окружениях. +## Подключение + +### Maven + +```xml + + ru.romanow-alex + skip-method + ${skip-method.version} + +``` + +### Gradle + +```groovy +testImplementation "ru.romanow-alex:skip-method:$skipMethodVersion" +``` + + ## Конфигурация Настроить поддержку AspectJ в [gradle](build.gradle): diff --git a/build.gradle b/build.gradle index 5d93822..1ffaa53 100644 --- a/build.gradle +++ b/build.gradle @@ -2,14 +2,15 @@ plugins { id "idea" id "jacoco" id "maven-publish" - id "org.jetbrains.kotlin.jvm" version "1.9.22" + id "org.jreleaser" version "1.19.0" + id "org.jetbrains.kotlin.jvm" version "1.9.25" id "org.jlleitschuh.gradle.ktlint" version "12.1.1" } [compileKotlin, compileTestKotlin]*.kotlinOptions*.jvmTarget = "17" ext { - junitVersion = "5.11.0" + junitVersion = "5.13.3" mockitoVersion = "5.13.0" assertjVersion = "3.26.3" aspectjVersion = "1.9.22.1" @@ -51,6 +52,10 @@ test { useJUnitPlatform() systemProperty "skipOn", findProperty("skipOn") + testLogging { + showStandardStreams = true + } + doFirst { jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED", @@ -70,9 +75,11 @@ check.dependsOn jacocoTestReport publishing { publications { maven(MavenPublication) { + from components.java pom { - name = "playwright-page-object" - description = "Page Object pattern for Playwright framework" + name = "skip-method" + description = "Skip method in test" + url = "https://github.com/Romanow/skip-method/" licenses { license { name = "The MIT License" @@ -81,22 +88,39 @@ publishing { } developers { developer { - name = "Romanov Alex" - email = "romanowalex@mail.ru" + id = "Romanow" + name = "Romanov Alexey" + email = "romanow.tech@gmail.com" } } scm { - url = "https://github.com/Romanow/playwright-page-object/" + url = "https://github.com/Romanow/skip-method/" + connection = "scm:git:https://github.com/Romanow/skip-method.git" + developerConnection = "scm:git:ssh://github.com/Romanow/skip-method.git" } } } } repositories { maven { - url = uri("https://maven.pkg.github.com/Romanow/playwright-page-object") - credentials { - username = System.getenv("GITHUB_USER") - password = System.getenv("GITHUB_TOKEN") + url = "build/staging-deploy" + } + } +} + +jreleaser { + signing { + active = "ALWAYS" + armored = true + } + deploy { + maven { + mavenCentral { + sonatype { + active = "ALWAYS" + url = "https://central.sonatype.com/api/v1/publisher" + stagingRepository("build/staging-deploy") + } } } } diff --git a/gradle.properties b/gradle.properties index 00aed64..2b9afb9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ version=1.0.0 -group=ru.romanow.skip.method +group=ru.romanow-alex org.gradle.daemon=true diff --git a/src/main/kotlin/ru/romanow/skip/method/SkipMethod.kt b/src/main/kotlin/ru/romanow/skip/method/SkipMethod.kt index 76e4d8a..9392ff8 100644 --- a/src/main/kotlin/ru/romanow/skip/method/SkipMethod.kt +++ b/src/main/kotlin/ru/romanow/skip/method/SkipMethod.kt @@ -9,7 +9,9 @@ annotation class SkipMethod( val skipOn: Array = [] ) { enum class Environments { - DEV, STAGE, PROD + DEV, + STAGE, + PROD } }