diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 000000000..a2939dd11 --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,20 @@ +name-template: '$NEXT_MINOR_VERSION' +tag-template: '$NEXT_MINOR_VERSION' +categories: + - title: '🚀 New Features' + labels: + - 'type:new feature' + - title: '🔬 Improvements' + labels: + - 'type:enhancement' + - title: '🐞 Bug Fixes' + labels: + - 'type:bug' + +change-template: '* $TITLE (via #$NUMBER) - @$AUTHOR' +template: | + $CHANGES + + ## 👀 Links + + [Commits since $PREVIOUS_TAG](https://github.com/allure-framework/allure2/compare/$PREVIOUS_TAG...master) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 000000000..797525b6d --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,21 @@ +name: Build + +on: + pull_request: + branches: + - '*' + push: + branches: + - 'master' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: ./gradlew build diff --git a/.github/workflows/labels-verify.yml b/.github/workflows/labels-verify.yml new file mode 100644 index 000000000..faf8586e1 --- /dev/null +++ b/.github/workflows/labels-verify.yml @@ -0,0 +1,13 @@ +name: "Verify type labels" + +on: + pull_request: + types: [opened, labeled, unlabeled, synchronize] + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: zwaldowski/match-label-action@v2 + with: + allowed: 'type:bug, type:enhancement, type:new feature' \ No newline at end of file diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml new file mode 100644 index 000000000..363a31018 --- /dev/null +++ b/.github/workflows/release-draft.yml @@ -0,0 +1,14 @@ +name: Release Draft + +on: + push: + branches: + - master + +jobs: + update_draft_release: + runs-on: ubuntu-latest + steps: + - uses: toolmantim/release-drafter@v5.2.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..074cd577c --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,22 @@ +name: Release + +on: + release: + types: [published] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up JDK + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: "Gradle Build" + run: ./gradlew build -Pversion=${GITHUB_REF:10} + - name: "Gradle Publish to Bintray" + env: + BINTRAY_USER: ${{ secrets.BINTRAY_USER }} + BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }} + run: ./gradlew bintrayUpload -Pversion=${GITHUB_REF:10} diff --git a/allure-cucumber-jvm/build.gradle.kts b/allure-cucumber-jvm/build.gradle.kts index 172806f45..20d2608ac 100644 --- a/allure-cucumber-jvm/build.gradle.kts +++ b/allure-cucumber-jvm/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure CucumberJVM Integration" val agent: Configuration by configurations.creating -val cucumberVersion = "1.2.5" +val cucumberVersion = "1.2.6" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-cucumber4-jvm/build.gradle.kts b/allure-cucumber4-jvm/build.gradle.kts index cb87fff60..e445dcec8 100644 --- a/allure-cucumber4-jvm/build.gradle.kts +++ b/allure-cucumber4-jvm/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure CucumberJVM 4.0" val agent: Configuration by configurations.creating -val cucumberVersion = "4.7.2" +val cucumberVersion = "4.8.0" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-cucumber6-jvm/build.gradle.kts b/allure-cucumber6-jvm/build.gradle.kts index 5bb9fb09f..7f2c6bda5 100644 --- a/allure-cucumber6-jvm/build.gradle.kts +++ b/allure-cucumber6-jvm/build.gradle.kts @@ -26,7 +26,7 @@ dependencies { tasks.jar { manifest { attributes(mapOf( - "Automatic-Module-Name" to "io.qameta.allure.cucumber5jvm" + "Automatic-Module-Name" to "io.qameta.allure.cucumber6jvm" )) } } diff --git a/allure-java-migration/build.gradle.kts b/allure-java-migration/build.gradle.kts index fa8b72725..ca9c66c0a 100644 --- a/allure-java-migration/build.gradle.kts +++ b/allure-java-migration/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure Java Migration Utils" val agent: Configuration by configurations.creating -val junitVersion = "4.12" +val junitVersion = "4.13.1" val testNgVersion = "6.14.3" dependencies { diff --git a/allure-jbehave/build.gradle.kts b/allure-jbehave/build.gradle.kts index a584086e4..a31bb7b3e 100644 --- a/allure-jbehave/build.gradle.kts +++ b/allure-jbehave/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure JBehave Integration" val agent: Configuration by configurations.creating -val jbehaveVersion = "4.5" +val jbehaveVersion = "4.7" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-jsonunit/build.gradle.kts b/allure-jsonunit/build.gradle.kts index 1d46c094b..e5837bae6 100644 --- a/allure-jsonunit/build.gradle.kts +++ b/allure-jsonunit/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure JsonUnit Integration" val agent: Configuration by configurations.creating -val jsonUnitVersion = "2.11.1" +val jsonUnitVersion = "2.19.0" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-junit4-aspect/build.gradle.kts b/allure-junit4-aspect/build.gradle.kts index 95d007017..00abb578b 100644 --- a/allure-junit4-aspect/build.gradle.kts +++ b/allure-junit4-aspect/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure JUnit 4 Aspect HACK" val agent: Configuration by configurations.creating -val junitVersion = "4.12" +val junitVersion = "4.13.1" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-junit4/build.gradle.kts b/allure-junit4/build.gradle.kts index fd9bcfd10..4d9620674 100644 --- a/allure-junit4/build.gradle.kts +++ b/allure-junit4/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure JUnit 4 Integration" val agent: Configuration by configurations.creating -val junitVersion = "4.12" +val junitVersion = "4.13.1" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-okhttp3/build.gradle.kts b/allure-okhttp3/build.gradle.kts index fcc64fe82..249b74867 100644 --- a/allure-okhttp3/build.gradle.kts +++ b/allure-okhttp3/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure OkHttp3 Integration" val agent: Configuration by configurations.creating -val okhttpVersion = "3.13.1" +val okhttpVersion = "3.14.9" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-rest-assured/build.gradle.kts b/allure-rest-assured/build.gradle.kts index 486282572..c82fa8dc6 100644 --- a/allure-rest-assured/build.gradle.kts +++ b/allure-rest-assured/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure Rest-Assured Integration" val agent: Configuration by configurations.creating -val restAssuredVersion = "4.0.0" +val restAssuredVersion = "4.3.1" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-selenide/build.gradle.kts b/allure-selenide/build.gradle.kts index 1cbf9732f..0887f9e8a 100644 --- a/allure-selenide/build.gradle.kts +++ b/allure-selenide/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure Selenide Integration" val agent: Configuration by configurations.creating -val selenideVersion = "5.12.2" +val selenideVersion = "5.15.1" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-spock/build.gradle.kts b/allure-spock/build.gradle.kts index a6c58b49e..60bea8f12 100644 --- a/allure-spock/build.gradle.kts +++ b/allure-spock/build.gradle.kts @@ -4,7 +4,7 @@ apply(plugin = "groovy") val agent: Configuration by configurations.creating -val spockFrameworkVersion = "1.2-groovy-2.5" +val spockFrameworkVersion = "1.3-groovy-2.5" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-spring-web/build.gradle.kts b/allure-spring-web/build.gradle.kts index 2ddeedc08..ff8a800ec 100644 --- a/allure-spring-web/build.gradle.kts +++ b/allure-spring-web/build.gradle.kts @@ -2,7 +2,7 @@ description = "Allure Spring Web Integration" val agent: Configuration by configurations.creating -val springWebVersion = "5.1.4.RELEASE" +val springWebVersion = "5.2.9.RELEASE" dependencies { agent("org.aspectj:aspectjweaver") diff --git a/allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNg.java b/allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNg.java index f296ad9ca..92fb3cfd9 100644 --- a/allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNg.java +++ b/allure-testng/src/main/java/io/qameta/allure/testng/AllureTestNg.java @@ -71,6 +71,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static io.qameta.allure.util.ResultsUtils.ALLURE_ID_LABEL_NAME; import static io.qameta.allure.util.ResultsUtils.bytesToHex; import static io.qameta.allure.util.ResultsUtils.createFrameworkLabel; import static io.qameta.allure.util.ResultsUtils.createHostLabel; @@ -498,6 +499,15 @@ public void onConfigurationFailure(final ITestResult itr) { final String parentUuid = UUID.randomUUID().toString(); startTestCase(itr, parentUuid, uuid); + + // results created for configuration failure should not be considered as test cases. + getLifecycle().updateTestCase( + uuid, + tr -> tr.getLabels().add( + new Label().setName(ALLURE_ID_LABEL_NAME).setValue("-1") + ) + ); + stopTestCase(uuid, itr.getThrowable(), getStatus(itr.getThrowable())); //do nothing } diff --git a/allure-testng/src/test/java/io/qameta/allure/testng/AllureTestNgTest.java b/allure-testng/src/test/java/io/qameta/allure/testng/AllureTestNgTest.java index 564a6a35f..326189c89 100644 --- a/allure-testng/src/test/java/io/qameta/allure/testng/AllureTestNgTest.java +++ b/allure-testng/src/test/java/io/qameta/allure/testng/AllureTestNgTest.java @@ -974,6 +974,7 @@ public void shouldAddCorrectBeforeMethodFixturesInCaseOfParallelRun( }); } + @SuppressWarnings("unchecked") @AllureFeatures.Fixtures @Issue("135") @Test @@ -992,6 +993,14 @@ public void shouldProcessConfigurationFailure() { .extracting(TestResult::getStatusDetails) .extracting(StatusDetails::getMessage) .containsExactly("fail"); + + assertThat(results.getTestResults()) + .filteredOn("name", "failed configuration") + .flatExtracting(TestResult::getLabels) + .extracting(Label::getName, Label::getValue) + .contains( + tuple("AS_ID", "-1") + ); } @AllureFeatures.IgnoredTests diff --git a/build.gradle.kts b/build.gradle.kts index 9fa48023c..ba0db2c95 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -31,7 +31,7 @@ val qualityConfigsDir by extra("$gradleScriptDir/quality-configs") val spotlessDtr by extra("$qualityConfigsDir/spotless") tasks.withType(Wrapper::class) { - gradleVersion = "6.6.1" + gradleVersion = "6.7" } plugins { @@ -78,29 +78,29 @@ configure(subprojects) { configure { imports { - mavenBom("com.fasterxml.jackson:jackson-bom:2.11.2") + mavenBom("com.fasterxml.jackson:jackson-bom:2.11.3") mavenBom("org.junit:junit-bom:5.7.0") } dependencies { dependency("com.github.tomakehurst:wiremock:2.27.2") dependency("com.google.inject:guice:4.2.3") - dependency("com.google.testing.compile:compile-testing:0.18") + dependency("com.google.testing.compile:compile-testing:0.19") dependency("com.squareup.retrofit2:retrofit:2.9.0") dependency("commons-io:commons-io:2.8.0") dependency("io.github.benas:random-beans:3.9.0") dependency("io.github.glytching:junit-extensions:2.4.0") dependency("org.apache.commons:commons-lang3:3.11") - dependency("org.apache.httpcomponents:httpclient:4.5.12") + dependency("org.apache.httpcomponents:httpclient:4.5.13") dependency("org.apache.tika:tika-core:1.24.1") dependency("org.aspectj:aspectjrt:1.9.6") dependency("org.aspectj:aspectjweaver:1.9.6") dependency("org.assertj:assertj-core:3.17.2") dependency("org.codehaus.groovy:groovy-all:2.5.13") dependency("org.freemarker:freemarker:2.3.30") - dependency("org.jboss.resteasy:resteasy-client:4.5.6.Final") + dependency("org.jboss.resteasy:resteasy-client:4.5.8.Final") dependency("org.jooq:joor-java-8:0.9.13") dependency("org.mock-server:mockserver-netty:5.11.1") - dependency("org.mockito:mockito-core:3.5.10") + dependency("org.mockito:mockito-core:3.5.15") dependencySet("org.slf4j:1.7.30") { entry("slf4j-api") entry("slf4j-nop") diff --git a/gradle.properties b/gradle.properties index 89100c006..1022fe6b1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.13.6 +version=2.14-SNAPSHOT org.gradle.daemon=true org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 490fda857..e708b1c02 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 12d38de6a..be52383ef 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 2fe81a7d9..4f906e0c8 100755 --- a/gradlew +++ b/gradlew @@ -82,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath diff --git a/gradlew.bat b/gradlew.bat index 62bd9b9cc..107acd32c 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell