diff --git a/.github/workflows/main-branch-push.yaml b/.github/workflows/main-branch-push.yaml new file mode 100644 index 00000000000..66c8d6c119c --- /dev/null +++ b/.github/workflows/main-branch-push.yaml @@ -0,0 +1,48 @@ +name: Main Branch build + +on: + push: + branches: + - 'master' + +env: + GOLANG_VERSION: 1.22 + NODEJS_VERSION: 18 + JAVA_VERSION_FULL_BUILD: 17 + JAVA_VERSION_CLIENT_BUILD: 11 + JAVA_DISTRO: temurin + JAVA_ARCH: x64 + +jobs: + athenz-build: + runs-on: ubuntu-latest-4-cores + steps: + - name: Checkout repository + id: checkout + uses: actions/checkout@v4 + + - name: Setup Golang + id: setup-go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GOLANG_VERSION }} + + - name: Setup Node + id: setup-node + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODEJS_VERSION }} + + - name: Setup Java + id: setup-java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVA_VERSION_FULL_BUILD }} + distribution: ${{ env.JAVA_DISTRO }} + architecture: ${{ env.JAVA_ARCH }} + + - name: Setup ZMS DB Schema file + run: cp servers/zms/schema/zms_server.sql servers/zms/src/test/resources/mysql + + - name: Build Athenz + run: mvn -B install diff --git a/.github/workflows/ossrh-publish.yaml b/.github/workflows/ossrh-publish.yaml index b2617769a38..87146558ab5 100644 --- a/.github/workflows/ossrh-publish.yaml +++ b/.github/workflows/ossrh-publish.yaml @@ -7,14 +7,13 @@ on: env: GOLANG_VERSION: 1.22 - NODEJS_VERSION: 18 JAVA_VERSION_SERVER_BUILD: 17 JAVA_VERSION_CLIENT_BUILD: 11 JAVA_DISTRO: temurin JAVA_ARCH: x64 jobs: - server-publish: + client-publish: runs-on: ubuntu-latest-4-cores steps: - name: Checkout repository @@ -27,22 +26,16 @@ jobs: with: go-version: ${{ env.GOLANG_VERSION }} - - name: Setup Node - id: setup-node - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODEJS_VERSION }} - - name: Setup Java id: setup-java uses: actions/setup-java@v4 with: - java-version: ${{ env.JAVA_VERSION_SERVER_BUILD }} + java-version: ${{ env.JAVA_VERSION_CLIENT_BUILD }} distribution: ${{ env.JAVA_DISTRO }} architecture: ${{ env.JAVA_ARCH }} - - name: Build and Publish Server Modules - run: actions/scripts/publish.sh server + - name: Build and Publish Client Modules + run: actions/scripts/publish.sh client env: OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} @@ -50,8 +43,9 @@ jobs: MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} PUBLISH_SKIP_PACKAGES: ${{ secrets.PUBLISH_SKIP_PACKAGES }} - client-publish: + server-publish: runs-on: ubuntu-latest-4-cores + needs: client-publish steps: - name: Checkout repository id: checkout @@ -67,12 +61,12 @@ jobs: id: setup-java uses: actions/setup-java@v4 with: - java-version: ${{ env.JAVA_VERSION_CLIENT_BUILD }} + java-version: ${{ env.JAVA_VERSION_SERVER_BUILD }} distribution: ${{ env.JAVA_DISTRO }} architecture: ${{ env.JAVA_ARCH }} - - name: Build and Publish Client Modules - run: actions/scripts/publish.sh client + - name: Build and Publish Server Modules + run: actions/scripts/publish.sh server env: OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} diff --git a/README.md b/README.md index 54b17d2173c..851dd494e4c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ # Athenz +[![GitHub_Actions Workflow](https://github.com/AthenZ/athenz/actions/workflows/main-branch-push.yaml/badge.svg)](https://github.com/AthenZ/athenz/actions) [![SourceSpy Dashboard](https://sourcespy.com/shield.svg)](https://sourcespy.com/github/athenzathenz/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4681/badge)](https://bestpractices.coreinfrastructure.org/projects/4681) [![Licenses](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FAthenZ%2Fathenz.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2FAthenZ%2Fathenz?ref=badge_shield) diff --git a/actions/scripts/publish.sh b/actions/scripts/publish.sh index 9bc266c63d9..675206638ff 100755 --- a/actions/scripts/publish.sh +++ b/actions/scripts/publish.sh @@ -16,7 +16,7 @@ function deployProject () then echo "Package $1 already published. Skipping..." else - until mvn -B deploy -P ossrh -Dmaven.test.skip=true --projects $1 + until mvn -B deploy -P ossrh -Dmaven.test.skip=true --projects $1 --settings actions/settings/settings-publish.xml do [[ counter -eq $max_retry ]] && echo "Failed to deploy package $1" && exit 1 counter=$(( $counter + 1 )) @@ -41,16 +41,19 @@ then deployProject "com.yahoo.athenz:athenz-msd-java-client" deployProject "com.yahoo.athenz:athenz-gcp-zts-creds" else - mvn -B --projects core/zms -Dmaven.test.skip=true install - mvn -B --projects core/zts -Dmaven.test.skip=true install - mvn -B --projects libs/java/auth_core -Dmaven.test.skip=true install - mvn -B --projects libs/java/client_common -Dmaven.test.skip=true install - mvn -B --projects libs/java/cert_refresher -Dmaven.test.skip=true install - mvn -B --projects clients/java/zms -Dmaven.test.skip=true install - mvn -B --projects clients/java/zts -Dmaven.test.skip=true install + mvn -B install --projects "com.yahoo.athenz:athenz" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-zms-core" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-zts-core" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-msd-core" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-auth-core" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-client-common" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-cert-refresher" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-zms-java-client" -Dmaven.test.skip=true + mvn -B install --projects "com.yahoo.athenz:athenz-zts-java-client" -Dmaven.test.skip=true deployProject "com.yahoo.athenz:athenz-server-common" deployProject "com.yahoo.athenz:athenz-server-k8s-common" + deployProject "com.yahoo.athenz:athenz-dynamodb-client-factory" deployProject "com.yahoo.athenz:athenz-server-aws-common" - deployProject "com.yahoo.athenz:athenz-instance-provider" deployProject "com.yahoo.athenz:athenz-syncer-common" + deployProject "com.yahoo.athenz:athenz-instance-provider" fi diff --git a/actions/settings/settings-publish.xml b/actions/settings/settings-publish.xml new file mode 100644 index 00000000000..ee8a8fe6504 --- /dev/null +++ b/actions/settings/settings-publish.xml @@ -0,0 +1,9 @@ + + + + ossrh + ${env.OSSRH_USERNAME} + ${env.OSSRH_TOKEN} + + + diff --git a/pom.xml b/pom.xml index 85f4d7ee291..ae1eb1d67ba 100644 --- a/pom.xml +++ b/pom.xml @@ -150,14 +150,14 @@ libs/java/auth_core libs/java/client_common libs/java/cert_refresher + clients/java/zms + clients/java/zts libs/java/server_common libs/java/server_k8s_common + libs/java/dynamodb_client_factory libs/java/server_aws_common libs/java/syncer_common libs/java/instance_provider - libs/java/dynamodb_client_factory - clients/java/zms - clients/java/zts clients/java/zpe clients/java/msd libs/java/gcp_zts_creds