diff --git a/.github/workflows/api-snapshot-check.yml b/.github/workflows/api-snapshot-check.yml new file mode 100644 index 0000000..7943180 --- /dev/null +++ b/.github/workflows/api-snapshot-check.yml @@ -0,0 +1,78 @@ +name: Test with utplsql-java-api snapshot + +on: + workflow_dispatch: + inputs: + api_version: + description: 'utplsql-java-api snapshot version (e.g. 3.2.4-SNAPSHOT)' + required: true + + repository_dispatch: + types: [utPLSQL-java-api-build] + +defaults: + run: + shell: bash + +jobs: + build: + name: Test with utplsql-java-api ${{ github.event.client_payload.api_version || inputs.api_version }} + runs-on: ubuntu-latest + env: + UTPLSQL_VERSION: develop + UTPLSQL_FILE: utPLSQL + DB_URL: "//localhost:1521/FREEPDB1" + DB_USER: APP + DB_PASS: APP + + services: + oracle: + image: gvenzl/oracle-free:23-slim-faststart + env: + ORACLE_PASSWORD: oracle + DB_URL: "//localhost:1521/FREEPDB1" + DB_USER: APP + DB_PASS: pass + ports: + - 1521:1521 + options: >- + --health-cmd healthcheck.sh + --health-interval 10s + --health-timeout 5s + --health-retries 10 + --name oracle + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-java@v5 + with: + distribution: 'adopt' + java-version: '17' + + - name: Install utplsql + run: .github/scripts/install_utplsql.sh + + - name: Install demo project + run: .github/scripts/install_demo_project.sh + + - name: Build and Test + run: | + API_VERSION="${{ github.event.client_payload.api_version || inputs.api_version }}" + mvn verify appassembler:assemble -Dutplsql-java-api.version="$API_VERSION" + + slack-workflow-status: + if: always() + name: Post Workflow Status To Slack + needs: [ build ] + runs-on: ubuntu-latest + steps: + - name: Slack Workflow Notification + uses: Gamesight/slack-workflow-status@master + with: + repo_token: ${{secrets.GITHUB_TOKEN}} + slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}} + name: 'Github Actions[bot]' + icon_url: 'https://octodex.github.com/images/mona-the-rivetertocat.png' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b0af34d..62f3368 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,6 +2,7 @@ name: Build and test on: push: + branches: [ develop ] pull_request: branches: [ develop ] @@ -29,9 +30,9 @@ jobs: strategy: fail-fast: false matrix: - utplsql_version: ["v3.1.14","develop"] + utplsql_version: ["v3.2.01","develop"] utplsql_file: ["utPLSQL"] - jdk: ['8', '11', '17','21','25'] + jdk: ['11', '17', '21', '25'] services: oracle: image: gvenzl/oracle-free:23-slim-faststart @@ -39,7 +40,7 @@ jobs: ORACLE_PASSWORD: oracle DB_URL: "//localhost:1521/FREEPDB1" DB_USER: APP - DB_PASS: APP + DB_PASS: pass ports: - 1521:1521 options: >- diff --git a/pom.xml b/pom.xml index c417838..6888240 100644 --- a/pom.xml +++ b/pom.xml @@ -4,18 +4,24 @@ org.utplsql cli - 3.1.10-SNAPSHOT + 3.2.0-SNAPSHOT utPLSQL CLI CLI for running Unit Tests with utPLSQL v3+. https://github.com/utPLSQL/utPLSQL-cli + 3.2.3 UTF-8 11 - 5.5.2 - 21.9.0.0 + 5.12.2 + 4.7.7 + 1.5.18 + 2.2 local + + utplsql + https://sonarcloud.io @@ -26,26 +32,44 @@ + + GitHub Issues + https://github.com/utPLSQL/utPLSQL-java-api/issues + + + + + Vinicius Avellar Moreira + utPLSQL.org + https://utplsql.org + amvinicius@gmail.com + + + Samuel Nitsche + utPLSQL.org + https://utplsql.org + derpesse@gmail.com + + + Jacek Gebal + utPLSQL.org + https://utplsql.org + jgebal@gmail.com + + + Simon Martinelli + utPLSQL.org + https://utplsql.org + simon@martineli.ch + https://martinelli.ch + + + org.utplsql - java-api - 3.1.9 - compile - - - com.oracle.ojdbc - ucp - - - com.oracle.ojdbc - ojdbc8 - - - com.oracle.ojdbc - orai18n - - + utplsql-java-api + ${utplsql-java-api.version} javax.xml.bind @@ -55,32 +79,13 @@ ch.qos.logback logback-classic - 1.2.13 + ${logback.version} info.picocli picocli - 4.6.3 + ${picocli.version} - - com.oracle.database.jdbc - ojdbc8 - ${oracle.jdbc.version} - compile - - - com.oracle.database.jdbc - ucp - - - - - com.oracle.database.nls - orai18n - ${oracle.jdbc.version} - compile - - org.junit.jupiter @@ -91,17 +96,22 @@ org.hamcrest hamcrest - 2.1 + ${hamcrest.version} test + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + org.codehaus.mojo appassembler-maven-plugin - 1.10 + 2.1.0 true true @@ -119,7 +129,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.0 + 3.5.5 **/*IT.java @@ -129,7 +139,7 @@ org.apache.maven.plugins maven-failsafe-plugin - 2.22.0 + 3.5.5 @@ -142,7 +152,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.3.0 + 3.8.0 utPLSQL-cli false @@ -154,7 +164,7 @@ net.nicoulaj.maven.plugins checksum-maven-plugin - 1.10 + 1.11 @@ -172,7 +182,7 @@ com.amashchenko.maven.plugin gitflow-maven-plugin - 1.18.0 + 1.21.0 true @@ -201,16 +211,9 @@ - utplsql-java-api - - https://packagecloud.io/utplsql/utplsql-java-api/maven2 - - - true - - - true - + central-snapshots + https://central.sonatype.com/repository/maven-snapshots/ + true diff --git a/src/main/java/org/utplsql/cli/RunAction.java b/src/main/java/org/utplsql/cli/RunAction.java index de1be33..f79e63d 100644 --- a/src/main/java/org/utplsql/cli/RunAction.java +++ b/src/main/java/org/utplsql/cli/RunAction.java @@ -192,8 +192,8 @@ private void initDatabase(DataSource dataSource) throws SQLException { compatibilityProxy = checkFrameworkCompatibility(conn); - logger.info("Successfully connected to database. UtPLSQL core: {}", compatibilityProxy.getVersionDescription()); - logger.info("Oracle-Version: {}", new DefaultDatabaseInformation().getOracleVersion(conn)); + logger.info("Connected to Oracle database: {}", new DefaultDatabaseInformation().getOracleVersion(conn)); + logger.info("utPLSQL core: {}", compatibilityProxy.getVersionDescription()); } catch (SQLException e) { if (e.getErrorCode() == 1017 || e.getErrorCode() == 12514) { throw new DatabaseConnectionFailed(e); diff --git a/src/main/java/org/utplsql/cli/reporters/LocalAssetsCoverageHTMLReporter.java b/src/main/java/org/utplsql/cli/reporters/LocalAssetsCoverageHTMLReporter.java index 602ee7c..20483c1 100644 --- a/src/main/java/org/utplsql/cli/reporters/LocalAssetsCoverageHTMLReporter.java +++ b/src/main/java/org/utplsql/cli/reporters/LocalAssetsCoverageHTMLReporter.java @@ -29,13 +29,17 @@ public LocalAssetsCoverageHTMLReporter(String selfType, Object[] attributes) { public Reporter init(Connection con, CompatibilityProxy compatibilityProxy, ReporterFactory reporterFactory) throws SQLException { super.init(con, compatibilityProxy, reporterFactory); - if (hasOutputToFile()) { + if (hasOutputToFile() && assetsAreBundled()) { writeReportAssetsTo(getPhysicalAssetPath()); } return this; } + private static boolean assetsAreBundled() { + return CoverageHTMLReporter.class.getResource("/CoverageHTMLReporter") != null; + } + private String getNameOfOutputFile() { Path outputPath = Paths.get(options.getOutputFileName()); return outputPath.getName(outputPath.getNameCount() - 1).toString(); @@ -51,7 +55,7 @@ private Path getPhysicalAssetPath() { } private void setAssetsPathFromOptions() { - if (hasOutputToFile()) { + if (hasOutputToFile() && assetsAreBundled()) { setAssetsPath(getNameOfOutputFile() + "_assets/"); } } diff --git a/src/test/java/org/utplsql/cli/CliVersionInfoTest.java b/src/test/java/org/utplsql/cli/CliVersionInfoTest.java index 28db14c..4a89f27 100644 --- a/src/test/java/org/utplsql/cli/CliVersionInfoTest.java +++ b/src/test/java/org/utplsql/cli/CliVersionInfoTest.java @@ -8,6 +8,6 @@ class CliVersionInfoTest { @Test void getCliVersionInfo() { - assertTrue(CliVersionInfo.getVersion().startsWith("3.1")); + assertTrue(CliVersionInfo.getVersion().startsWith("3.2")); } } diff --git a/src/test/java/org/utplsql/cli/TestHelper.java b/src/test/java/org/utplsql/cli/TestHelper.java index 488654e..dddca1a 100644 --- a/src/test/java/org/utplsql/cli/TestHelper.java +++ b/src/test/java/org/utplsql/cli/TestHelper.java @@ -19,9 +19,9 @@ class TestHelper { private static String sPass; static { - sUrl = EnvironmentVariableUtil.getEnvValue("DB_URL", "192.168.99.100:1521:XE"); - sUser = EnvironmentVariableUtil.getEnvValue("DB_USER", "app"); - sPass = EnvironmentVariableUtil.getEnvValue("DB_PASS", "app"); + sUrl = EnvironmentVariableUtil.getEnvValue("DB_URL", "//localhost:1521/FREEPDB1"); + sUser = EnvironmentVariableUtil.getEnvValue("DB_USER", "APP"); + sPass = EnvironmentVariableUtil.getEnvValue("DB_PASS", "pass"); } static RunPicocliCommand createPicocliRunCommand(String... args ) {