From 5503eba1459fd441c676caebb0ceacb8f4466f4c Mon Sep 17 00:00:00 2001 From: jechague Date: Sun, 10 Apr 2022 22:05:25 -0300 Subject: [PATCH 01/10] Add Dockerfile-based devcontainer --- .devcontainer/Dockerfile | 50 +++++++++++++++++++++++++++++++++ .devcontainer/devcontainer.json | 34 ++++++++++++++++++++++ .devcontainer/settings.xml | 26 +++++++++++++++++ .gitignore | 1 + 4 files changed, 111 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/settings.xml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000..f62de244e --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,50 @@ +ARG VARIANT= +FROM openjdk:${VARIANT} + +LABEL vendor="GeneXus Labs" +USER root + +# Set timezone +ENV TZ=America/Montevideo +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# Install dependencies +RUN apt-get update \ + && apt-get install -y \ + curl \ + git \ + git-lfs \ + maven \ + sudo \ + tar \ + zip \ + -o APT::Immediate-Configure=0 \ + && apt-get clean \ + && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* + +#Set Github user +RUN useradd -m github \ + && usermod -aG sudo github \ + && echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers + +USER github +WORKDIR /home/github + +# Enable Git LFS +RUN git lfs install + +# Intall updated cacerts +# Build a new Java cacerts using CAs trusted by Mozilla +RUN cd /tmp \ + && curl -OL https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt \ + && curl -OL https://raw.githubusercontent.com/curl/curl/master/scripts/mk-ca-bundle.pl \ + && curl -OL https://github.com/use-sparingly/keyutil/releases/download/0.4.0/keyutil-0.4.0.jar \ + && perl mk-ca-bundle.pl -n > ca-bundle.crt \ + && java -jar keyutil-0.4.0.jar --import --new-keystore cacerts-mozilla --password changeit --force-new-overwrite --import-pem-file ca-bundle.crt \ + && sudo cp cacerts-mozilla ${JAVA_HOME}/lib/security/cacerts \ + && rm -r /tmp/* + +# Copy Maven settings +COPY --chown=github:github settings.xml /tmp/settings.xml +RUN mkdir -p /home/github/.m2/ \ + && mv /tmp/settings.xml /home/github/.m2/ \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..d04af3b6b --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,34 @@ +{ + "name": "OpenJDK for compiling GeneXus's Java Classes", + + "build": { + "dockerfile": "Dockerfile", + // Update 'VARIANT' to pick a different OpenJDK container + "args": { + //"VARIANT": "9.0.4-12-jdk-slim" + //"VARIANT": "11.0.14-jdk-slim" + "VARIANT": "17.0-jdk-slim" + }, + }, + + "runArgs": [ + "--env-file", "${localWorkspaceFolder}/.devcontainer/.env" + ], + + // Set *default* container specific settings.json values on container create. + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + + /*"mounts": [ + "source=,target=${containerWorkspaceFolder}/,type=volume" + ],*/ + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "", + + // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "github", + + "shutdownAction": "stopContainer", +} \ No newline at end of file diff --git a/.devcontainer/settings.xml b/.devcontainer/settings.xml new file mode 100644 index 000000000..5bf66d74b --- /dev/null +++ b/.devcontainer/settings.xml @@ -0,0 +1,26 @@ + + + + private-repo-github + + + private-maven-on-github + https://maven.pkg.github.com/genexuslabs/* + + + + + + + + private-maven-on-github + ${env.GITHUB_USERNAME} + ${env.GITHUB_TOKEN} + + + + + private-repo-github + + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5d70c1073..6df74faab 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ target/ PublicTempStorage/ PrivateTempStorage/ gxexternalproviders/resources/ +.devcontainer/.env From 49dcb6bcce196c7ba8c84b227c5e1a6a12287d95 Mon Sep 17 00:00:00 2001 From: jechague Date: Sun, 10 Apr 2022 22:50:36 -0300 Subject: [PATCH 02/10] Use revision and changelist properties instead of version --- pom.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7c033dfee..c31ea7ddc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} pom GeneXus Standard Classes (Parent) @@ -14,6 +14,9 @@ https://github.com/genexuslabs/JavaClasses + 2.7 + -SNAPSHOT + UTF-8 2.34 3.0.1 From e6daf8e21a19ad04f3acb84630b6cdc3a054020f Mon Sep 17 00:00:00 2001 From: jechague Date: Sun, 10 Apr 2022 22:51:16 -0300 Subject: [PATCH 03/10] Update updatePOMVersion script to correctly read version from pom --- .github/updatePOMVersion.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/updatePOMVersion.sh b/.github/updatePOMVersion.sh index c1c3d2e80..9ac71ecfd 100755 --- a/.github/updatePOMVersion.sh +++ b/.github/updatePOMVersion.sh @@ -1,7 +1,7 @@ #!/bin/bash function ReadPomMajorMinorNumbers { - currentVersion=$(sed -n '/.*<\/version>/ s/\(.*\)<\/version>/\1/p' pom.xml) + currentVersion="$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" semVerComponents=( ${currentVersion//-/ } ) semVerComponents=${semVerComponents[0]} semVerComponents=( ${semVerComponents//./ } ) @@ -53,4 +53,4 @@ fi GIT_HASH=$(git rev-parse HEAD) scmversion="$GIT_HASH" scmv=$(echo $scmversion | sed 's/\//\\\//g') -sed -i "/<\/properties>/ s/.*/${scmv}\n&/" pom.xml +sed -i "/<\/properties>/ s/.*/ ${scmv}\n&/" pom.xml From 7adb8eb74616ece3565ddce65e91fdda92cd31d1 Mon Sep 17 00:00:00 2001 From: jechague Date: Thu, 14 Jul 2022 12:03:38 -0300 Subject: [PATCH 04/10] Update child POMs to use new parent version --- android/pom.xml | 2 +- androidreports/pom.xml | 2 +- apacheandroid/pom.xml | 2 +- common/pom.xml | 2 +- gxandroidpublisher/pom.xml | 2 +- gxawsserverless/pom.xml | 2 +- gxcryptocommon/pom.xml | 2 +- gxexternalproviders/pom.xml | 2 +- gxgeospatial/pom.xml | 2 +- gxmail/pom.xml | 2 +- gxmaps/pom.xml | 2 +- gxodata/pom.xml | 2 +- gxoffice/pom.xml | 2 +- gxsearch/pom.xml | 2 +- gxwebsocket/pom.xml | 2 +- gxwebsocketjakarta/pom.xml | 2 +- java/pom.xml | 2 +- javapns/pom.xml | 2 +- wrappercommon/pom.xml | 2 +- wrapperjakarta/pom.xml | 2 +- wrapperjavax/pom.xml | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/android/pom.xml b/android/pom.xml index bc549d2db..91c6eda1d 100644 --- a/android/pom.xml +++ b/android/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxandroid diff --git a/androidreports/pom.xml b/androidreports/pom.xml index 161a39e97..6ab2f6875 100644 --- a/androidreports/pom.xml +++ b/androidreports/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxandroidreports diff --git a/apacheandroid/pom.xml b/apacheandroid/pom.xml index 7c571f8e9..bac4069d5 100644 --- a/apacheandroid/pom.xml +++ b/apacheandroid/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} apacheandroid diff --git a/common/pom.xml b/common/pom.xml index 87e280c20..e7ae9755d 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxcommon diff --git a/gxandroidpublisher/pom.xml b/gxandroidpublisher/pom.xml index c55686615..b9bacf962 100644 --- a/gxandroidpublisher/pom.xml +++ b/gxandroidpublisher/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxandroidpublisher diff --git a/gxawsserverless/pom.xml b/gxawsserverless/pom.xml index ad8de1377..454db26b4 100644 --- a/gxawsserverless/pom.xml +++ b/gxawsserverless/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxawsserverless diff --git a/gxcryptocommon/pom.xml b/gxcryptocommon/pom.xml index c35868145..06cd19877 100644 --- a/gxcryptocommon/pom.xml +++ b/gxcryptocommon/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxcryptocommon diff --git a/gxexternalproviders/pom.xml b/gxexternalproviders/pom.xml index 9a55e12e3..8121217b6 100644 --- a/gxexternalproviders/pom.xml +++ b/gxexternalproviders/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxexternalproviders diff --git a/gxgeospatial/pom.xml b/gxgeospatial/pom.xml index f67b47219..bb3e6008c 100644 --- a/gxgeospatial/pom.xml +++ b/gxgeospatial/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxgeospatial diff --git a/gxmail/pom.xml b/gxmail/pom.xml index 322fccaab..cdd852cad 100644 --- a/gxmail/pom.xml +++ b/gxmail/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxmail GeneXus Mail diff --git a/gxmaps/pom.xml b/gxmaps/pom.xml index f009cf370..0d2ca0f9e 100644 --- a/gxmaps/pom.xml +++ b/gxmaps/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxmaps diff --git a/gxodata/pom.xml b/gxodata/pom.xml index f753a8c23..90e54dffc 100644 --- a/gxodata/pom.xml +++ b/gxodata/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxodata diff --git a/gxoffice/pom.xml b/gxoffice/pom.xml index d5296f55c..4acb5848e 100644 --- a/gxoffice/pom.xml +++ b/gxoffice/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxoffice diff --git a/gxsearch/pom.xml b/gxsearch/pom.xml index 49d0e35f3..2f3b1897a 100644 --- a/gxsearch/pom.xml +++ b/gxsearch/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxsearch diff --git a/gxwebsocket/pom.xml b/gxwebsocket/pom.xml index dd3b07ddf..512e2fef4 100644 --- a/gxwebsocket/pom.xml +++ b/gxwebsocket/pom.xml @@ -5,7 +5,7 @@ parent com.genexus - 2.7-SNAPSHOT + ${revision}${changelist} gxwebsocket diff --git a/gxwebsocketjakarta/pom.xml b/gxwebsocketjakarta/pom.xml index 8afdbd7f4..39335ee68 100644 --- a/gxwebsocketjakarta/pom.xml +++ b/gxwebsocketjakarta/pom.xml @@ -5,7 +5,7 @@ parent com.genexus - 2.7-SNAPSHOT + ${revision}${changelist} gxwebsocketjakarta diff --git a/java/pom.xml b/java/pom.xml index 77c2d2491..87d922c35 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxclassR diff --git a/javapns/pom.xml b/javapns/pom.xml index 5b4bb781f..edae6ac3b 100644 --- a/javapns/pom.xml +++ b/javapns/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} javapns diff --git a/wrappercommon/pom.xml b/wrappercommon/pom.xml index 92df2ea02..c940d4079 100644 --- a/wrappercommon/pom.xml +++ b/wrappercommon/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxwrappercommon diff --git a/wrapperjakarta/pom.xml b/wrapperjakarta/pom.xml index dd2bd52a0..e1cb3880d 100644 --- a/wrapperjakarta/pom.xml +++ b/wrapperjakarta/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxwrapperjakarta diff --git a/wrapperjavax/pom.xml b/wrapperjavax/pom.xml index e62261f07..460f0a4db 100644 --- a/wrapperjavax/pom.xml +++ b/wrapperjavax/pom.xml @@ -7,7 +7,7 @@ com.genexus parent - 2.7-SNAPSHOT + ${revision}${changelist} gxwrapperjavax From 7c0304710c5bbc2f79cfd74edae8748fd1d9ef09 Mon Sep 17 00:00:00 2001 From: jechague Date: Thu, 14 Jul 2022 11:50:19 -0300 Subject: [PATCH 05/10] Configure project for publication in Azure Artifacts and Maven Central Update build workflow: - Refactor version script into a step directly in the workflow - Update version format to use a trunk or stable identifier - Add new servers - Use Maven profiles - Separate build dispatch into a separate job - Delete ProcessCommit workflow --- .github/updatePOMVersion.sh | 56 -------- .github/workflows/Build.yml | 168 ++++++++++++++++++---- .github/workflows/ProcessCommit.yml | 35 ----- .gitignore | 1 + pom.xml | 214 ++++++++++++++++++++++++---- 5 files changed, 332 insertions(+), 142 deletions(-) delete mode 100755 .github/updatePOMVersion.sh delete mode 100644 .github/workflows/ProcessCommit.yml diff --git a/.github/updatePOMVersion.sh b/.github/updatePOMVersion.sh deleted file mode 100755 index 9ac71ecfd..000000000 --- a/.github/updatePOMVersion.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash - -function ReadPomMajorMinorNumbers { - currentVersion="$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" - semVerComponents=( ${currentVersion//-/ } ) - semVerComponents=${semVerComponents[0]} - semVerComponents=( ${semVerComponents//./ } ) - - pomMajorNumber=${semVerComponents[0]} - pomMinorNumber=${semVerComponents[1]} - pomPatchNumber="$(git rev-list --count origin/master..)" -} - -ReadPomMajorMinorNumbers - -branch="$(git symbolic-ref --short HEAD)" -case "$branch" in - beta) - echo "## Is BETA branch, add +100 to major number" - - pomMajorNumber=$(expr $pomMajorNumber + 100) - - newVersion="$pomMajorNumber.$pomMinorNumber-SNAPSHOT" - ;; - - beta-corona) - echo "## Is BETA-CORONA branch, use fixed version" - - pomMajorNumber="116" - pomMinorNumber="0" - - - newVersion="$pomMajorNumber.$pomMinorNumber.$pomPatchNumber" - ;; - - release-*) - echo "## Is RELEASE/UPGRADE branch, use pom.xml version modifing patch number" - - newVersion="$pomMajorNumber.$pomMinorNumber.$pomPatchNumber" - ;; - - *) - echo "## Is MASTER or feature branch, use pom.xml version" - ;; -esac - -if [[ -n "${newVersion}" ]]; then - echo "## Updating pom.xml version to: $newVersion" - mvn -B versions:set -DgenerateBackupPoms=false -DnewVersion="$newVersion" -fi - -# Add current commit's SHA to pom.xml -GIT_HASH=$(git rev-parse HEAD) -scmversion="$GIT_HASH" -scmv=$(echo $scmversion | sed 's/\//\\\//g') -sed -i "/<\/properties>/ s/.*/ ${scmv}\n&/" pom.xml diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 622f5de88..64f7082ca 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -20,10 +20,15 @@ jobs: GIT_REF: ${{ github.ref }} GIT_SHA: ${{ github.sha }} POM_PATH: ./pom.xml - VERSION_SCRIPT: ./github/updatePOMVersion.sh runs-on: ubuntu-latest + outputs: + MAVEN_VERSION: ${{ steps.buildVariables.outputs.MAVEN_VERSION }} + LAST_COMMITTER: ${{ steps.buildVariables.outputs.LAST_COMMITTER }} + COMMIT_MESSAGE: ${{ steps.buildVariables.outputs.COMMIT_MESSAGE }} + SHOULD_DEPLOY: ${{ steps.buildVariables.outputs.SHOULD_DEPLOY }} + steps: - name: Checkout uses: actions/checkout@v2 @@ -34,52 +39,161 @@ jobs: uses: actions/setup-java@v1.4.3 with: java-version: 1.9 + gpg-private-key: ${{ secrets.MAVEN_GPG_BUILDER_PRIVATE_KEY }} + gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Setup Maven settings uses: whelk-io/maven-settings-xml-action@v14 with: - repositories: '[{ "id": "github-genexuslabs", "url": "https://maven.pkg.github.com/genexuslabs/Private-Maven-for-GX", "releases": { "enabled": "true" }, "snapshots": { "enabled": "true" } }]' - servers: '[{ "id": "github-genexuslabs", "username": "genexusbot", "password": "${{ secrets.SECURE_TOKEN }}" }]' + repositories: '[{ "id": "github-genexuslabs", "url": "https://maven.pkg.github.com/genexuslabs/*", "releases": { "enabled": "true" }, "snapshots": { "enabled": "true" } }]' + servers: '[ + { "id": "github-genexuslabs", "username": "genexusbot", "password": "${{ secrets.SECURE_TOKEN }}" }, + { "id": "azure-devops", "username": "genexuslabs", "password": "${env.AZURE_ARTIFACTS_TOKEN}" }, + { "id": "ossrh", "username": "${env.MAVEN_USERNAME}", "password": "${env.MAVEN_PASSWORD}" }, + { "id": "gpg.passphrase", "passphrase": "${env.MAVEN_GPG_PASSPHRASE}" } + ]' - name: Calculate build variables id: buildVariables run: | - if ! [[ "$GIT_REF" =~ 'release-.+$' ]]; then - CommitNumber=$(git rev-list --count HEAD) - else - CommitNumber=$(git rev-list --count origin/master..) - fi - LastCommitter=$(git log -1 --pretty=format:%an) CommitMessage=$(git log -1 --pretty=%B) - echo "::set-output name=CommitNumber::$CommitNumber" - echo "::set-output name=LastCommitter::$LastCommitter" - echo "::set-output name=CommitMessage::$CommitMessage" + echo "::set-output name=LAST_COMMITTER::$LastCommitter" + echo "::set-output name=COMMIT_MESSAGE::$CommitMessage" - - name: Update POM version - id: POMVersion - run: | - script="$VERSION_SCRIPT" - if [ -f "$script" ]; then - echo "Executing version script at: $script" - sh "$script" + currentVersion="$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" + semVerComponents=( ${currentVersion//-/ } ) + semVerComponents=${semVerComponents[0]} + semVerComponents=( ${semVerComponents//./ } ) + + pomMajorNumber=${semVerComponents[0]} + pomMinorNumber=${semVerComponents[1]} + + branch="$(git symbolic-ref --short HEAD)" + timestamp=$(date --utc +%Y%m%d%H%M%S) + + SHOULD_DEPLOY='false' + SHOULD_DEPLOY_MAVEN_CENTRAL='false' + + case "$branch" in + master) + echo "## Is MASTER branch" + + versionChangelist="-stable.$timestamp-SNAPSHOT" + SHOULD_DEPLOY='true' + ;; + + beta) + echo "## Is BETA branch, add +100 to major number" + + pomMajorNumber=$(expr $pomMajorNumber + 100) + + versionChangelist="-trunk.$timestamp-SNAPSHOT" + SHOULD_DEPLOY='true' + ;; + + beta-corona) + echo "## Is BETA-CORONA branch, use fixed version" + + pomMajorNumber="116" + pomMinorNumber="0" + pomPatchNumber="$(git rev-list --count origin/master..)" + + SHOULD_DEPLOY='true' + ;; + + release-*) + echo "## Is RELEASE/UPGRADE branch, use pom.xml version modifing patch number" + + pomPatchNumber="$(git rev-list --count origin/master..)" + + SHOULD_DEPLOY='true' + SHOULD_DEPLOY_MAVEN_CENTRAL='true' + ;; + + *) + echo "## Is a feature branch, use pom.xml version as is" + ;; + esac + + if [ -z "$pomPatchNumber" ]; then + newVersion="$pomMajorNumber.$pomMinorNumber" else - echo 'No version script specified. Will generate packages with the version on the POM file' + newVersion="$pomMajorNumber.$pomMinorNumber.$pomPatchNumber" fi - finalPOMVersion=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout --file $POM_PATH) - echo "Project version: $finalPOMVersion" - echo "::set-output name=finalPOMVersion::$finalPOMVersion" + # Add current commit's SHA to pom.xml + GIT_HASH=$(git rev-parse HEAD) + scmversion="$GIT_HASH" + scmv=$(echo $scmversion | sed 's/\//\\\//g') + sed -i "/<\/properties>/ s/.*/ ${scmv}\n&/" pom.xml + + echo "Project version: $newVersion" + echo "Version changelist: $versionChangelist" + + MAVEN_VERSION="$newVersion$versionChangelist" + echo "Full project version: $MAVEN_VERSION" + + echo "::set-output name=newVersion::$newVersion" + echo "::set-output name=versionChangelist::$versionChangelist" + echo "::set-output name=MAVEN_VERSION::$MAVEN_VERSION" + echo "::set-output name=SHOULD_DEPLOY::$SHOULD_DEPLOY" + echo "::set-output name=SHOULD_DEPLOY_MAVEN_CENTRAL::$SHOULD_DEPLOY_MAVEN_CENTRAL" - name: Validate build - run: mvn -B validate --file $POM_PATH + run: mvn -B validate -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} --file $POM_PATH -P ci-cd - name: Build - run: mvn -B compile --file $POM_PATH + run: mvn -B compile -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} --file $POM_PATH -P ci-cd - name: Test - run: mvn -B test --file $POM_PATH + run: mvn -B test -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} --file $POM_PATH -P ci-cd - name: Package - run: mvn -B package --file $POM_PATH + run: mvn -B -DskipTests package -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} --file $POM_PATH -P ci-cd + + - name: Deploy to Azure Artifacts + if: steps.buildVariables.outputs.SHOULD_DEPLOY == 'true' + run: mvn -B -DskipTests deploy -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} -DdeployAtEnd=true --file "$POM_PATH" -P ci-cd -P deploy-to-azure + env: + AZURE_ARTIFACTS_TOKEN: ${{ secrets.AZURE_ARTIFACTS_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_BUILDER_PASSPHRASE }} + + - name: Deploy to Maven Central + if: steps.buildVariables.outputs.SHOULD_DEPLOY_MAVEN_CENTRAL == 'true' + run: mvn -B -DskipTests deploy -Drevision=${{ steps.buildVariables.outputs.newVersion }} -Dchangelist=${{ steps.buildVariables.outputs.versionChangelist }} -Dsha1=${{ github.sha }} -DdeployAtEnd=true --file "$POM_PATH" -P ci-cd -P deploy-to-maven-central + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_OSSRH_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_BUILDER_PASSPHRASE }} + + dispatch-build: + name: Dispatch build result + needs: build + if: github.repository_owner == 'GeneXusLabs' && needs.build.outputs.SHOULD_DEPLOY == 'true' + + runs-on: ubuntu-latest + + concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true + + steps: + - name: Checkout action + uses: actions/checkout@v2 + with: + repository: genexuslabs/dispatch-build-result + ref: releases/v2 + token: ${{ secrets.SECURE_TOKEN }} + path: ./tmp/.github/actions/dispatch-build-result + + - name: Dispatch build result + uses: ./tmp/.github/actions/dispatch-build-result + with: + component-name: ${{ github.event.inputs.repository }} + branch-ref: ${{ env.GIT_REF }} + new-version: ${{ needs.build.outputs.MAVEN_VERSION }} + committer: ${{ needs.build.outputs.LAST_COMMITTER }} + commit-message: ${{ needs.build.outputs.COMMIT_MESSAGE }} + token: ${{ secrets.SECURE_TOKEN }} diff --git a/.github/workflows/ProcessCommit.yml b/.github/workflows/ProcessCommit.yml deleted file mode 100644 index b90cbeadc..000000000 --- a/.github/workflows/ProcessCommit.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Process commit -on: - workflow_dispatch: - push: - branches: - - 'master' - - 'beta' - - 'beta-corona' - - 'release-*' - ignore-paths: - - '*.md' - -jobs: - dispatchWorkflow: - name: Dispatch build - runs-on: [ubuntu-latest] - - steps: - - name: Dispatch Workflow - run: > - curl -X POST - -H 'Accept: application/vnd.github.v3+json' - -H 'Authorization: token ${{ secrets.SECURE_TOKEN }}' - --silent --show-error --fail - ${{ secrets.BUILD_WORKFLOW_DISPATCH }} - -d '{ - "ref":"main", - "inputs": { - "repository": "${{ github.repository }}", - "ref": "${{ github.ref }}", - "sha": "${{ github.sha }}", - "build-file": "pom.xml", - "version-script": ".github/updatePOMVersion.sh" - } - }' diff --git a/.gitignore b/.gitignore index 6df74faab..446c4e05a 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ target/ .classpath .settings *.versionsBackup +.flattened-pom.xml *.xlsx diff --git a/pom.xml b/pom.xml index c31ea7ddc..ed28a3acb 100644 --- a/pom.xml +++ b/pom.xml @@ -15,18 +15,53 @@ 2.7 - -SNAPSHOT + -SNAPSHOT + UTF-8 - 2.34 - 3.0.1 - 5.2.2 - 2.13.2 - 4.13.2 - 2.17.213 + 2.34 + 3.0.1 + 5.2.2 + 2.13.2 + 4.13.2 + 2.17.213 - + + GeneXus S.A. + https://www.genexus.com + + + + + Apache 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + + iroqueta + Ignacio Roqueta + iroqueta@genexus.com + GeneXus S.A. + https://www.genexus.com/ + + architect + developer + + America/Montevideo + + + + + scm:git:https://github.com/genexuslabs/javaclasses + scm:git:https://github.com/genexuslabs/javaclasses.git + https://github.com/genexuslabs/javaclasses + ${sha1} + + + common wrapperjavax wrapperjakarta @@ -48,23 +83,16 @@ gxwebsocketjakarta gxawsserverless androidreports - - - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - + - - - junit - junit - ${junit.version} - test - - + + + junit + junit + ${junit.version} + test + + @@ -166,6 +194,144 @@ maven-project-info-reports-plugin 2.7 + + org.codehaus.mojo + flatten-maven-plugin + 1.1.0 + + true + ossrh + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + ci-cd + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.2.0 + + com.genexus.gxserver.client.services.* + + + + attach-javadocs + + jar + + + false + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + + sign-artifacts + verify + + sign + + + + + --pinentry-mode + loopback + + + + + + + + + + deploy-to-azure + + + + + azure-devops + Azure Artifacts + https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/java-releases/maven/v1 + + + azure-devops + Azure Artifacts + https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/java-snapshots/maven/v1 + + + + + deploy-to-maven-central + + + + + ossrh + Maven Central + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ + + + ossrh + Maven Central - Snapshots Repository + https://s01.oss.sonatype.org/content/repositories/snapshots + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + true + + ossrh + https://s01.oss.sonatype.org + false + + + + + + From 6e1a6ec3b88c6b4285c0f1c3a8a9a0095c7eccd7 Mon Sep 17 00:00:00 2001 From: jechague Date: Sat, 16 Jul 2022 15:29:29 -0300 Subject: [PATCH 06/10] Add GPG to devcontainer --- .devcontainer/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f62de244e..d1bcb03be 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -18,6 +18,7 @@ RUN apt-get update \ sudo \ tar \ zip \ + gnupg2 \ -o APT::Immediate-Configure=0 \ && apt-get clean \ && rm -fr /var/lib/apt/lists/* /tmp/* /var/tmp/* From 878b5a54d8c89e2d70c55541a2f934f1d98aa053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Echag=C3=BCe?= Date: Mon, 18 Jul 2022 15:02:04 -0300 Subject: [PATCH 07/10] Update Build.yml Fix branch name determination when in a PR --- .github/workflows/Build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 64f7082ca..62cc2b7b1 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -70,7 +70,7 @@ jobs: pomMajorNumber=${semVerComponents[0]} pomMinorNumber=${semVerComponents[1]} - branch="$(git symbolic-ref --short HEAD)" + [[ $(git branch --show-current) ]] && branch="$(git symbolic-ref --short HEAD)" || branch=“DETACHED HEAD“ timestamp=$(date --utc +%Y%m%d%H%M%S) SHOULD_DEPLOY='false' From 962377cd9271e89731cc6f4743a62c06fc815216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Echag=C3=BCe?= Date: Mon, 18 Jul 2022 15:04:01 -0300 Subject: [PATCH 08/10] Update Build.yml Remove space in command --- .github/workflows/Build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 62cc2b7b1..11061ba3e 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -70,7 +70,7 @@ jobs: pomMajorNumber=${semVerComponents[0]} pomMinorNumber=${semVerComponents[1]} - [[ $(git branch --show-current) ]] && branch="$(git symbolic-ref --short HEAD)" || branch=“DETACHED HEAD“ + [[ $(git branch --show-current) ]] && branch="$(git symbolic-ref --short HEAD)" || branch=“DETACHED_HEAD“ timestamp=$(date --utc +%Y%m%d%H%M%S) SHOULD_DEPLOY='false' From c40638b21bcc0c0d43b7a6c53c9705a96c255269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Echag=C3=BCe?= Date: Tue, 19 Jul 2022 16:29:56 -0300 Subject: [PATCH 09/10] Update Azure Artifacts repo URLs --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ed28a3acb..c3857034e 100644 --- a/pom.xml +++ b/pom.xml @@ -292,12 +292,12 @@ azure-devops Azure Artifacts - https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/java-releases/maven/v1 + https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/releases/maven/v1 azure-devops Azure Artifacts - https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/java-snapshots/maven/v1 + https://pkgs.dev.azure.com/genexuslabs/3361ab3b-96bc-4a69-a37a-f2b255ff2f35/_packaging/snapshots/maven/v1 From b9a7fe0c188ee1aa22f2d2ba9cbe93d803a8cee4 Mon Sep 17 00:00:00 2001 From: Ana Berta <31777352+anaiberta@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:07:39 -0300 Subject: [PATCH 10/10] Update .devcontainer/Dockerfile --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d1bcb03be..e296f15db 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -34,7 +34,7 @@ WORKDIR /home/github # Enable Git LFS RUN git lfs install -# Intall updated cacerts +# Install updated cacerts # Build a new Java cacerts using CAs trusted by Mozilla RUN cd /tmp \ && curl -OL https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt \