diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md new file mode 100644 index 00000000..4de26c77 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md new file mode 100644 index 00000000..53842951 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/Feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..287b3408 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,214 @@ +name: Build + +on: + push: + pull_request: + branches: [ master ] + +jobs: + build-maven: + runs-on: ${{ matrix.os }} + strategy: + matrix: + java: [ '8', '11' ] + os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] + fail-fast: false + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Java ${{ matrix.Java }} (${{ matrix.os }}) + uses: actions/setup-java@v3 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2-repository + - name: Build with Maven + env: + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + run: mvn --batch-mode --errors --update-snapshots verify --file pom.xml + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.os }}-${{ matrix.java }} + retention-days: 5 + path: | + jee-agents-distribution/jee-agents-distribution-appserver-v10/target/*.zip + jee-agents-distribution/jee-agents-distribution-jboss-v42/target/*.zip + jee-agents-distribution/jee-agents-distribution-jboss-v7/target/*.zip + jee-agents-distribution/jee-agents-distribution-jetty-v61/target/*.zip + jee-agents-distribution/jee-agents-distribution-jetty-v7/target/*.zip + jee-agents-distribution/jee-agents-distribution-jsr196/target/*.zip + jee-agents-distribution/jee-agents-distribution-tomcat-v6/target/*.zip + build-docker-tomcat-8-5-jre8: + runs-on: 'ubuntu-latest' + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Set up Java for publishing to Maven Central Repository OSS + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2-repository + - name: Build with Maven + env: + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + run: mvn --batch-mode --errors --update-snapshots package --file pom.xml + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + localhost:5000/${{ github.repository }} + tags: | + type=raw,value=test + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver-opts: network=host + - name: Build image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + platforms: linux/amd64, linux/arm64/8, linux/arm/v7, linux/ppc64le + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - name: Docker test + shell: bash + run: | + docker run -it -d --name=test localhost:5000/${GITHUB_REPOSITORY,,}:test + timeout 2m bash -c 'until docker logs test | grep -q "Naming service connection failed"; do sleep 5; done' + build-docker-tomcat-9-jre8: + runs-on: 'ubuntu-latest' + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Set up Java for publishing to Maven Central Repository OSS + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2-repository + - name: Build with Maven + env: + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + run: | + mvn --batch-mode --errors --update-snapshots package --file pom.xml + sed -i -e 's/tomcat:8\.5-jre8/tomcat:9-jre8/g' jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + localhost:5000/${{ github.repository }} + tags: | + type=raw,value=test + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver-opts: network=host + - name: Build image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + platforms: linux/amd64, linux/arm64/8, linux/arm/v7, linux/ppc64le + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - name: Docker test + shell: bash + run: | + docker run -it -d --name=test localhost:5000/${GITHUB_REPOSITORY,,}:test + timeout 2m bash -c 'until docker logs test | grep -q "Naming service connection failed"; do sleep 5; done' + build-docker-tomee-7-1-plus-jre8: + runs-on: 'ubuntu-latest' + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Set up Java for publishing to Maven Central Repository OSS + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + - name: Build with Maven + env: + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + run: | + mvn --batch-mode --errors --update-snapshots package --file pom.xml + sed -i -e 's/tomcat:8\.5-jre8/tomee:8-jre-7\.1\.0-plus/g' jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + localhost:5000/${{ github.repository }} + tags: | + type=raw,value=test + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + driver-opts: network=host + - name: Build image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - name: Docker test + shell: bash + run: | + docker run -it -d --name=test localhost:5000/${GITHUB_REPOSITORY,,}:test + timeout 2m bash -c 'until docker logs test | grep -q "Naming service connection failed"; do sleep 5; done' \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..7e8152e6 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,92 @@ +name: Package/Deploy + +on: + workflow_dispatch: + workflow_run: + branches: [ master ] + workflows: ["Build","Release"] + types: [completed] +jobs: + deploy-maven: + if: ${{ github.event.workflow_run.conclusion == 'success' }} + runs-on: 'ubuntu-latest' + steps: + - name: Print github context + env: + GITHUB_CONTEXT: ${{ toJSON(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Set up Java for publishing to Maven Central Repository OSS + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + server-id: ossrh + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2-repository + - name: Install gpg secret key + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + if: ${{ env.GPG_PRIVATE_KEY!=''}} + run: | + cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import + gpg --list-secret-keys --keyid-format LONG + - name: Build package local + env: + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + if: ${{ !(github.event.workflow_run.event=='push' && env.MAVEN_USERNAME!='' && env.MAVEN_PASSWORD!='')}} + run: mvn --batch-mode --errors --update-snapshots -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} package --file pom.xml + - name: Publish to the Maven Central Repository + env: + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + if: ${{ github.event.workflow_run.event=='push' && env.MAVEN_USERNAME!='' && env.MAVEN_PASSWORD!=''}} + run: mvn --batch-mode --errors --update-snapshots -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} deploy --file pom.xml + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (Appserver v10 ZIP) + path: jee-agents-distribution/jee-agents-distribution-appserver-v10/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (JBoss v42 ZIP) + path: jee-agents-distribution/jee-agents-distribution-jboss-v42/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (JBoss v7 ZIP) + path: jee-agents-distribution/jee-agents-distribution-jboss-v7/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (Jetty v61 ZIP) + path: jee-agents-distribution/jee-agents-distribution-jetty-v61/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (Jetty v7-v8 ZIP) + path: jee-agents-distribution/jee-agents-distribution-jetty-v7/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (JSR196 ZIP) + path: jee-agents-distribution/jee-agents-distribution-jsr196/target/*.zip + - name: Upload artifacts OpenAM Distribution Kit, containing all distributable artifacts + uses: actions/upload-artifact@v3 + with: + name: OpenAM Java Policy Agent (Tomcat v6-v9 ZIP) + path: jee-agents-distribution/jee-agents-distribution-tomcat-v6/target/*.zip + \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..38fb596a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,228 @@ +name: Release + +on: + workflow_dispatch: + inputs: + releaseVersion: + description: "Default version to use when preparing a release." + required: true + default: "X.Y.Z" + developmentVersion: + description: "Default version to use for new local working copy." + required: true + default: "X.Y.Z-SNAPSHOT" +jobs: + release-maven: + runs-on: 'ubuntu-latest' + steps: + - name: Print github context + env: + GITHUB_CONTEXT: ${{ toJSON(github) }} + run: echo "$GITHUB_CONTEXT" + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Set up Java for publishing to Maven Central Repository OSS + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + server-id: ossrh + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + - name: Cache Maven packages + uses: actions/cache@v3 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-repository-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2-repository + - name: Install gpg secret key + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + if: ${{ env.GPG_PRIVATE_KEY!=''}} + run: | + cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import + gpg --list-secret-keys --keyid-format LONG + git config --global user.signingkey B02611B009E5302EB58D102D6C2EDF3C90D33841 + - name: Configure Git User + run: | + git config --global user.name "Open Identity Platform Community" + git config --global user.email "open-identity-platform-opendj@googlegroups.com" + - name: Release and publish to the Maven Central Repository + env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ github.token }} + MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true -Dmaven.wagon.http.retryHandler.count=10 + if: ${{ env.MAVEN_USERNAME!='' && env.MAVEN_PASSWORD!='' }} + run: mvn --batch-mode -Darguments="-Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}" -DsignTag=true -DtagNameFormat="${{ github.event.inputs.releaseVersion }}" -DreleaseVersion=${{ github.event.inputs.releaseVersion }} -DdevelopmentVersion=${{ github.event.inputs.developmentVersion }} release:prepare release:perform --file pom.xml + - name: Release on GitHub + uses: softprops/action-gh-release@v1 + with: + name: ${{ github.event.inputs.releaseVersion }} + tag_name: ${{ github.event.inputs.releaseVersion }} + draft: false + prerelease: false + fail_on_unmatched_files: false + generate_release_notes: true + files: | + jee-agents-distribution/jee-agents-distribution-appserver-v10/target/*.zip + jee-agents-distribution/jee-agents-distribution-jboss-v42/target/*.zip + jee-agents-distribution/jee-agents-distribution-jboss-v7/target/*.zip + jee-agents-distribution/jee-agents-distribution-jetty-v61/target/*.zip + jee-agents-distribution/jee-agents-distribution-jetty-v7/target/*.zip + jee-agents-distribution/jee-agents-distribution-jsr196/target/*.zip + jee-agents-distribution/jee-agents-distribution-tomcat-v6/target/*.zip + release-docker-tomcat-v8: + runs-on: 'ubuntu-latest' + needs: + - release-maven + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.releaseVersion }} + fetch-depth: 1 + submodules: recursive + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }}/${{ github.event.repository.name }} + tags: | + type=raw,value=tomcat-v8 + type=raw,value=${{ github.event.inputs.releaseVersion }}-tomcat-v8 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + build-args: | + VERSION=${{ github.event.inputs.releaseVersion }} + platforms: linux/amd64, linux/arm64/8, linux/arm/v7, linux/ppc64le + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + release-docker-tomcat-v9: + runs-on: 'ubuntu-latest' + needs: + - release-maven + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.releaseVersion }} + fetch-depth: 1 + submodules: recursive + - name: Set source + run: sed -i -e 's/tomcat:8\.5-jre8/tomcat:9-jre8/g' jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }}/${{ github.event.repository.name }} + tags: | + type=raw,value=latest + type=raw,value=tomcat + type=raw,value=tomcat-v9 + type=raw,value=${{ github.event.inputs.releaseVersion }} + type=raw,value=${{ github.event.inputs.releaseVersion }}-tomcat + type=raw,value=${{ github.event.inputs.releaseVersion }}-tomcat-v9 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + build-args: | + VERSION=${{ github.event.inputs.releaseVersion }} + platforms: linux/amd64, linux/arm64/8, linux/arm/v7, linux/ppc64le + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + release-docker-tomee: + runs-on: 'ubuntu-latest' + needs: + - release-maven + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.releaseVersion }} + fetch-depth: 1 + submodules: recursive + - name: Set source + run: sed -i -e 's/tomcat:8\.5-jre8/tomee:8-jre-7\.1\.0-plus/g' jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }}/${{ github.event.repository.name }} + tags: | + type=raw,value=tomee + type=raw,value=tomee-v7 + type=raw,value=${{ github.event.inputs.releaseVersion }}-tomee + type=raw,value=${{ github.event.inputs.releaseVersion }}-tomee-v7 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push image + uses: docker/build-push-action@v3 + continue-on-error: true + with: + context: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6 + file: ./jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile + build-args: | + VERSION=${{ github.event.inputs.releaseVersion }} + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5a2619ba..00000000 --- a/.travis.yml +++ /dev/null @@ -1,88 +0,0 @@ -language: java -cache: - directories: - - $HOME/.m2 -git: - depth: 9999 -matrix: - include: - - os: linux - jdk: openjdk8 - sudo: required - services: - - docker - before_deploy: - - git config --local user.name "Open Identity Platform Community" && git config --local user.email "open-identity-platform-openam@googlegroups.com" - - git checkout -f $TRAVIS_BRANCH - - git tag -f $git_version && git tag -d $git_version - - mvn -B -q -DreleaseVersion="$git_version" -DtagNameFormat="@{project.version}" -DignoreSnapshots=true -DpushChanges=false -DscmCommentPrefix="[ci skip] " -DskipTests -Darguments=-DskipTests clean release:prepare - - git log `git describe --tags --abbrev=0 HEAD^ --always`..HEAD --oneline;git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.git #>/dev/null 2>&1 - - git push --quiet --force https://$GITHUBKEY@github.com/$TRAVIS_REPO_SLUG.git $git_version #>/dev/null 2>&1 - deploy: - provider: releases - draft: false - prerelease: false - target_commitish: $(git rev-list -n 1 $git_version) - tag_name: $git_version - name: $git_version - body: "compare: $(git rev-list -n 1 $git_version_last)...$(git rev-list -n 1 $git_version)" - api_key: - secure: xSBmIHb8xDN3QJYAHEeJ3RMcROGuquqTXB3PZSNPNesNwPGuZpj9gSHfxp8kCnb17jMImGVlZ1MZSrdbc+MvWi39sWWQHHwbLUzwd+5phSanzMzhHLL6NB93rNCzBzatwNyWjpniVOrStENin38HenO4Rs3z6LFMJmUd4La2Wz41LWNiNhU5ifqwYbxZ7EPuSV9KTGH1P7IUfCLI8u07D4fZF1es4KdzPJFtj3xrLgxaa13vkiC8VpFoCjG2UfNhYplawerpCgVIEpxKDbMPQ32UjZqeSjPxQfR7c0yyceL69Krgm7Go/mtflPqDJmMs10y9oThDrIm5AXtxEjzwTCukA5USBGYbii0mVYxUTMNs36ogO48t2BcHzT/9iMGn8o/h2UGQUUnm58nLEYg7B6kRkSRSPFhL+6zrvYm1ByqIon0dpMrHP/L7Mu5MiVzh0SbZoXmOwT1MdksE7BOI0/ZWRvK9NqtnLfcPCpqlNAomFaZAaHw5U3r0GUVhZ+SWJo0PbvWMFxUe+rNwr+h4pI8GoR3c1u+B2Max8DmveWoGgkyaWxplJIJIZb5wFEdTVG/xdoo0t7dgAKrbkELkSPsYM2ftX5J4EQxqAJfnleIdptKWYFU3VHxHrC1e4uQvKHwIKLVZJixrkaN0QlIkt3v3zm/ZU4C4OOUZtPSo9rE= - skip_cleanup: true - overwrite: true - file_glob: true - file: - - "jee-agents-distribution/jee-agents-distribution-appserver-v10/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-jboss-v42/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-jboss-v7/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-jetty-v61/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-jetty-v7/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-jsr196/target/*.zip" - - "jee-agents-distribution/jee-agents-distribution-tomcat-v6/target/*.zip" - on: - repo: OpenIdentityPlatform/OpenAM-JEE-Agents - tags: false - branch: - - master - - travis - after_deploy: - - echo 'after_deploy' - - echo 'build and push Docker' - - cd jee-agents-distribution/jee-agents-distribution-tomcat-v6 - - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" - - docker build . -t $DOCKER_USERNAME/openam-j2ee-agent-tomcat -t $DOCKER_USERNAME/openam-j2ee-agent-tomcat:tomcat -t $DOCKER_USERNAME/openam-j2ee-agent-tomcat:$git_version -t $DOCKER_USERNAME/openam-j2ee-agent-tomcat:$git_version-tomcat - - docker push $DOCKER_USERNAME/openam-j2ee-agent-tomcat:$git_version-tomcat - - docker push $DOCKER_USERNAME/openam-j2ee-agent-tomcat:$git_version - - docker push $DOCKER_USERNAME/openam-j2ee-agent-tomcat:tomcat - - docker push $DOCKER_USERNAME/openam-j2ee-agent-tomcat - - sed -i -e 's/tomcat:8\.5-jre8/tomee:8-jre-7\.1\.0-plus/g' Dockerfile - - docker build . -t $DOCKER_USERNAME/openam-j2ee-agent-tomcat:$git_version-tomee-8-jre-7.1.0-plus - - docker push $DOCKER_USERNAME/openam-j2ee-agent-tomcat:tomee-8-jre-7.1.0-plus - - os: osx - osx_image: xcode9.1 - allow_failures: - - os: osx -branches: - except: - - /[0-9]+\.[0-9]+\.[0-9]+$/ -notifications: - email: - - open-identity-platform-openam@googlegroups.com -before_install: - - date -u - - uname -a - - # if [[ "$TRAVIS_OS_NAME" == "osx" ]] ; then brew install rpm wine; else sudo apt-get install -y rpm wine; fi - - git fetch -t - - export git_version_last="$(git describe --abbrev=0 --tags --always)" - - export git_version="$(echo $git_version_last | awk -F . '{ printf "%d.%d.%d", $1,$2,$3 + 1}')" - - env | sort - - git log `git describe --tags --abbrev=0 HEAD^ --always`..HEAD --oneline -install: - - mvn -q -B -DskipTests -Dmaven.javadoc.skip=true install -f OpenAM/OpenDJ/forgerock-parent - - mvn -q -B clean -f OpenAM/OpenDJ/forgerock-parent - - mvn -q -B -DskipTests -Dmaven.javadoc.skip=true install -f OpenAM/OpenDJ - - mvn -q -B clean -f OpenAM/OpenDJ - - mvn -q -B -DskipTests -Dmaven.javadoc.skip=true install -f OpenAM - - mvn -q -B clean -f OpenAM -script: - - mvn -q -B install \ No newline at end of file diff --git a/README.md b/README.md index 97687765..06e4849e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ ## OpenAM Java EE Policy Agents [![Latest release](https://img.shields.io/github/release/OpenIdentityPlatform/OpenAM-JEE-Agents.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) -[![Build Status](https://travis-ci.org/OpenIdentityPlatform/OpenAM-JEE-Agents.svg)](https://travis-ci.org/OpenIdentityPlatform/OpenAM-JEE-Agents) +[![Build](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/actions/workflows/build.yml/badge.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/actions/workflows/build.yml) +[![Deploy](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/actions/workflows/deploy.yml/badge.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/actions/workflows/deploy.yml) [![Issues](https://img.shields.io/github/issues/OpenIdentityPlatform/OpenAM-JEE-Agents.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/issues) [![Last commit](https://img.shields.io/github/last-commit/OpenIdentityPlatform/OpenAM-JEE-Agents.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/commits/master) [![License](https://img.shields.io/badge/license-CDDL-blue.svg)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/blob/master/LICENSE.md) @@ -14,7 +15,7 @@ OpenAM Java EE Policy Agents is an OpenAM add-on component that functions as a P This project is licensed under the [Common Development and Distribution License (CDDL)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/blob/master/LICENSE.md). ## Downloads -* [OpenAM Java Policy Agent (Tomcat v6 v7 v8 ZIP)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) (All OS) +* [OpenAM Java Policy Agent (Tomcat v6-v9 ZIP)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) (All OS) * [OpenAM Java Policy Agent (Jetty v61 ZIP)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) (All OS) * [OpenAM Java Policy Agent (Jetty v7-v8 ZIP)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) (All OS) * [OpenAM Java Policy Agent (Appserver v10 ZIP)](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases) (All OS) @@ -29,7 +30,6 @@ This project is licensed under the [Common Development and Distribution License Java 1.8+ required ## How-to build -Build tested with Java 8 and Java 11. ```bash git clone https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents.git @@ -38,15 +38,14 @@ mvn clean install -f OpenAM-JEE-Agents ## Support and Mailing List Information * OpenAM Java Policy Agent Community Wiki: https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/wiki -* OpenAM Java Policy Agent Community Mailing List: open-identity-platform-openam@googlegroups.com -* OpenAM Java Policy Agent Community Archive: https://groups.google.com/d/forum/open-identity-platform-openam -* OpenAM Java Policy Agent Community on Gitter: https://gitter.im/OpenIdentityPlatform/OpenAM +* OpenAM Java Policy Agent Community Discussions: https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/discussions +* OpenAM Java Policy Agent Community Issues: https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/issues * OpenAM Java Policy Agent Commercial support RFP: support@openam.org.ru (English, Russian) ## Contributing Please, make [Pull request](https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/pulls) -## Thanks for OpenAM Java Policy Agent +## Thanks for OpenAM Java Policy Agent 🥰 * Sun Access Manager * Sun OpenSSO * Oracle OpenSSO diff --git a/jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile b/jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile index 437225fa..8c83eef9 100644 --- a/jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile +++ b/jee-agents-distribution/jee-agents-distribution-tomcat-v6/Dockerfile @@ -10,13 +10,17 @@ ENV OPENAM_AGENT_URL="http://localhost:8080/agentapp" ENV USER="tomcat" ENV CATALINA_OPTS="-Xmx2048m -server -Dcom.iplanet.services.debug.level=error -Dcom.sun.identity.agents.config.local.logfile= -Dcom.iplanet.services.debug.directory" -ADD target/*.zip . +COPY . target/*.zip ./ + ADD run.sh bin/run.sh -WORKDIR $CATALINA_HOME +ENV CATALINA_HOME=${CATALINA_HOME:-.} + +RUN apt update && apt install -y curl unzip && rm -fr $CATALINA_HOME/webapps/* -RUN apt update && apt install -y unzip \ - && rm -fr $CATALINA_HOME/webapps/* && unzip *.zip && rm -rf *.zip +ARG VERSION +RUN if [ ! -z "$VERSION" ] ; then rm -rf ./*.zip ; curl -L https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/releases/download/$VERSION/tomcat_v6_v7_v8_v9_agent_$VERSION.zip --output $VERSION.zip ; fi +RUN unzip *.zip && rm -rf *.zip RUN useradd -m -r -u 1001 -g root $USER \ && chgrp -R 0 $CATALINA_HOME && chmod -R g=u $CATALINA_HOME \ diff --git a/jee-agents-distribution/jee-agents-distribution-tomcat-v6/pom.xml b/jee-agents-distribution/jee-agents-distribution-tomcat-v6/pom.xml index 317b1d39..684010e4 100644 --- a/jee-agents-distribution/jee-agents-distribution-tomcat-v6/pom.xml +++ b/jee-agents-distribution/jee-agents-distribution-tomcat-v6/pom.xml @@ -46,7 +46,7 @@ single - tomcat_v6_v7_v8_agent_${project.version} + tomcat_v6_v7_v8_v9_agent_${project.version} false gnu diff --git a/pom.xml b/pom.xml index 91f6a4a2..374468e0 100644 --- a/pom.xml +++ b/pom.xml @@ -57,26 +57,102 @@ jee-agents-sampleapp jee-agents-distribution + + + CDDL-1.1 + https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/blob/master/LICENSE.md + Common Development and Distribution License (CDDL) 1.1. + This license applies to OpenDJ source code as indicated in the + source files. + + repo + + + + + Open Identity Platform Community + Open Identity Platform Community + open-identity-platform@googlegroups.com + Open Identity Platform Community + https://www.openidentityplatform.org/ + https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents + + + + github.com + https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents/issues + scm:git:https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents.git - scm:git:ssh://git@github.com:OpenIdentityPlatform/OpenAM-JEE-Agents.git + scm:git:https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents.git https://github.com/OpenIdentityPlatform/OpenAM-JEE-Agents HEAD - - jboss-nexus-public - JBoss Nexus Public Repository - https://repository.jboss.org/nexus/content/groups/public/ - - + + ossrh-snapshots + Sonatype OSS Repository + https://oss.sonatype.org/content/repositories/snapshots/ + true + + + jboss-nexus-public + JBoss Nexus Public Repository + https://repository.jboss.org/nexus/content/groups/public/ + + + + + ossrh-snapshots + Sonatype OSS Repository + https://oss.sonatype.org/content/repositories/snapshots/ + + true + + + + + + ossrh + Sonatype OSS Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2 + + + ossrh + Sonatype OSS Repository + https://oss.sonatype.org/content/repositories/snapshots + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.13 + true + + ossrh + https://oss.sonatype.org/ + false + 15 + true + true + + + + com.google.guava + guava + 15.0 + + + + org.codehaus.gmaven groovy-maven-plugin - 2.0 + 2.1.1 com.google.code.maven-replacer-plugin @@ -504,5 +580,43 @@ + + + release-sign-artifacts + + + gpg.passphrase + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.6 + + ${gpg.passphrase} + true + + + + sign-artifacts + verify + + sign + + + + --pinentry-mode + loopback + + + + + + + + +