From 0f67411631f579d42e921aee37abd57902584bdc Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Wed, 30 Aug 2023 16:28:19 +0530 Subject: [PATCH] [MOSIP-29142] Updated workflows with reusable templates [MOSIP-25631] --- .github/workflows/postgres-init-trigger.yml | 24 + .github/workflows/postgres-init_trigger.yml | 83 -- .github/workflows/push-trigger.yml | 84 ++ .github/workflows/push_trigger.yml | 815 -------------------- .github/workflows/release-changes.yml | 26 + .github/workflows/release_changes.yml | 56 -- .github/workflows/release_trigger.yml | 626 --------------- .github/workflows/tag.yml | 33 + 8 files changed, 167 insertions(+), 1580 deletions(-) create mode 100644 .github/workflows/postgres-init-trigger.yml delete mode 100644 .github/workflows/postgres-init_trigger.yml create mode 100644 .github/workflows/push-trigger.yml delete mode 100644 .github/workflows/push_trigger.yml create mode 100644 .github/workflows/release-changes.yml delete mode 100644 .github/workflows/release_changes.yml delete mode 100644 .github/workflows/release_trigger.yml create mode 100644 .github/workflows/tag.yml diff --git a/.github/workflows/postgres-init-trigger.yml b/.github/workflows/postgres-init-trigger.yml new file mode 100644 index 00000000000..deae49c445d --- /dev/null +++ b/.github/workflows/postgres-init-trigger.yml @@ -0,0 +1,24 @@ +name: Trigger postgres-init repo upon db scripts updates + +on: + push: + branches: + - master + - 1.* + - develop + - release* + paths: + #- db_release_scripts/** + - db_scripts/** + +jobs: + # This job is to trigger postgres-init repo. + trigger-postgres-init-repo: + runs-on: ubuntu-latest + steps: + - uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.ACTION_PAT }} + repository: mosip/postgres-init + client-payload: '{ "ref": "${{ github.ref }}" }' + event-type: db-event diff --git a/.github/workflows/postgres-init_trigger.yml b/.github/workflows/postgres-init_trigger.yml deleted file mode 100644 index 244fdad02df..00000000000 --- a/.github/workflows/postgres-init_trigger.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Trigger postgres-init repo upon db scripts updates - -on: - push: - branches: - - master - - 1.* - - develop - - release* - paths: - - db_release_scripts/** - - db_scripts/** - -jobs: - paths-filter: - runs-on: ubuntu-latest - outputs: - db_release_scripts: ${{ steps.filter.outputs.db_release_scripts }} - db_scripts: ${{ steps.filter.outputs.db_scripts }} - steps: - - uses: actions/checkout@v2 - - uses: dorny/paths-filter@v2 - id: filter - with: - base: ${{ github.ref }} - filters: | - db_release_scripts: - - 'db_release_scripts/**' - db_scripts: - - 'db_scripts/**' - - # run only if 'db_release_scripts' files were changed - db_release_scripts_updates: - needs: paths-filter - if: needs.paths-filter.outputs.db_release_scripts == 'true' - runs-on: ubuntu-latest - steps: - - name: Check for updates - run: echo "Updates are present in db_release_scripts directory, Triggering postgres-init repo" - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,job,took,ref # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_DEVOPS }} # required - if: success() # Pick up events when the job is successful. - - # run only if not 'db_release_scripts' files were changed - - name: Check for no updates - if: needs.paths-filter.outputs.db_release_scripts != 'true' - run: echo "Updates are not present in db_release_scripts directory" - - # run only if 'db_scripts' files were changed - db_scripts_updates: - needs: paths-filter - if: needs.paths-filter.outputs.db_scripts == 'true' - runs-on: ubuntu-latest - steps: - - name: Check for updates - run: echo "Updates are present in db_scripts directory, Triggering postgres-init repo" - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,job,took,ref # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_DEVOPS }} # required - if: success() # Pick up events when the job is successful. - - # run only if not 'db_scripts' files were changed - - name: Check for no updates - if: needs.paths-filter.outputs.db_scripts != 'true' - run: echo "Updates are not present in db_scripts directory" - - # This job is to trigger postgres-init repo. - trigger-postgres_init_repo: - runs-on: ubuntu-latest - steps: - - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.ACTION_PAT }} - repository: mosip/postgres-init - base: ${{ github.ref }} - event-type: db-event diff --git a/.github/workflows/push-trigger.yml b/.github/workflows/push-trigger.yml new file mode 100644 index 00000000000..4bc7d41a9d0 --- /dev/null +++ b/.github/workflows/push-trigger.yml @@ -0,0 +1,84 @@ +name: Maven Package upon a push + +on: + release: + types: [published] + pull_request: + types: [closed] + push: + branches: + - '!release-branch' + - release-1* + - master + - 1.* + - develop + - MOSIP-11719 + +jobs: + build-maven-pre-registration: + uses: mosip/kattu/.github/workflows/maven-build.yml@master + with: + SERVICE_LOCATION: ./pre-registration + BUILD_ARTIFACT: pre-registration + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + publish_to_nexus: + if: "!contains(github.ref, 'master')" + needs: build-maven-pre-registration + uses: mosip/kattu/.github/workflows/maven-publish-to-nexus.yml@master + with: + SERVICE_LOCATION: ./pre-registration + secrets: + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_URL: https://oss.sonatype.org/service/local/staging/deploy/maven2 + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + build-dockers: + needs: build-maven-pre-registration + strategy: + matrix: + include: + - SERVICE_LOCATION: 'pre-registration/pre-registration-application-service' + SERVICE_NAME: 'pre-registration-application-service' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-batchjob' + SERVICE_NAME: 'pre-registration-batchjob' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-datasync-service' + SERVICE_NAME: 'pre-registration-datasync-service' + BUILD_ARTIFACT: 'pre-registration' + - SERVICE_LOCATION: 'pre-registration/pre-registration-captcha-service' + SERVICE_NAME: 'pre-registration-captcha-service' + BUILD_ARTIFACT: 'pre-registration' + uses: mosip/kattu/.github/workflows/docker-build.yml@master + with: + SERVICE_LOCATION: ${{ matrix.SERVICE_LOCATION }} + SERVICE_NAME: ${{ matrix.SERVICE_NAME }} + BUILD_ARTIFACT: ${{ matrix.BUILD_ARTIFACT }} + secrets: + DEV_NAMESPACE_DOCKER_HUB: ${{ secrets.DEV_NAMESPACE_DOCKER_HUB }} + ACTOR_DOCKER_HUB: ${{ secrets.ACTOR_DOCKER_HUB }} + RELEASE_DOCKER_HUB: ${{ secrets.RELEASE_DOCKER_HUB }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + sonar_analysis: + needs: build-maven-pre-registration + uses: mosip/kattu/.github/workflows/maven-sonar-analysis.yml@master + with: + SERVICE_LOCATION: ./pre-registration + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + ORG_KEY: ${{ secrets.ORG_KEY }} + OSSRH_USER: ${{ secrets.OSSRH_USER }} + OSSRH_SECRET: ${{ secrets.OSSRH_SECRET }} + OSSRH_TOKEN: ${{ secrets.OSSRH_TOKEN }} + GPG_SECRET: ${{ secrets.GPG_SECRET }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml deleted file mode 100644 index 87785f82f1c..00000000000 --- a/.github/workflows/push_trigger.yml +++ /dev/null @@ -1,815 +0,0 @@ - -name: Maven Package upon a push - -on: - pull_request: - types: [closed] - push: - branches: - - '!release-branch' - - release-1* - - master - - 1.* - - develop - - MOSIP-11719 - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - - echo ${{ env.BRANCH_NAME }} - - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Upload the springboot jars - uses: actions/upload-artifact@v1 - with: - name: release - path: ./release.zip - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - - publish_to_nexus: - if: "!contains(github.ref, 'master')" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - - echo ${{ env.BRANCH_NAME }} - - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - - run: echo " ossrh ${{secrets.RELEASE_USER}} ${{secrets.RELEASE_TOKEN}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package --file pom.xml -s $GITHUB_WORKSPACE/settings.xml - - name: Publish the maven package - run: | - cd pre-registration && mvn deploy -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_token }} - GPG_TTY: $(tty) - # - uses: 8398a7/action-slack@v3 - # with: - # status: ${{ job.status }} - # fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - # env: - # SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - # if: failure() # Pick up events even if the job fails or is canceled. - - - - # docker-pre-registration-booking-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-booking-service -# SERVICE_LOCATION: pre-registration/pre-registration-booking-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-booking-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - docker-pre-registration-application-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-application-service - SERVICE_LOCATION: pre-registration/pre-registration-application-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-application-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - if [[ $BRANCH_NAME == master ]]; then - VERSION=latest - else - VERSION=$BRANCH_NAME - fi - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - # docker-pre-registration-login-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-login-service -# SERVICE_LOCATION: pre-registration/pre-registration-login-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-login-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - docker-pre-registration-batchjob: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-batchjob - SERVICE_LOCATION: pre-registration/pre-registration-batchjob - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-batchjob - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - if [[ $BRANCH_NAME == master ]]; then - VERSION=latest - else - VERSION=$BRANCH_NAME - fi - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - docker-pre-registration-datasync-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-datasync-service - SERVICE_LOCATION: pre-registration/pre-registration-datasync-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-datasync-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - if [[ $BRANCH_NAME == master ]]; then - VERSION=latest - else - VERSION=$BRANCH_NAME - fi - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - # docker-pre-registration-demographic-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-demographic-service -# SERVICE_LOCATION: pre-registration/pre-registration-demographic-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-demographic-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-document-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-document-service -# SERVICE_LOCATION: pre-registration/pre-registration-document-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-document-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-generateqrcode-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-generateqrcode-service -# SERVICE_LOCATION: pre-registration/pre-registration-generateqrcode-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-generateqrcode-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-notification-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-notification-service -# SERVICE_LOCATION: pre-registration/pre-registration-notification-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-notification-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" -# - name: Get current date -# id: date -# run: echo "::set-output name=date::$(date +'%Y-%m-%d')" -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# if [[ $BRANCH_NAME == master ]]; then -# VERSION=latest -# else -# VERSION=$BRANCH_NAME -# fi -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - - docker-pre-registration-captcha-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-captcha-service - SERVICE_LOCATION: pre-registration/pre-registration-captcha-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-transliteration-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --build-arg SOURCE=mosip --build-arg COMMIT_HASH=$(git rev-parse HEAD) --build-arg COMMIT_ID=$(git rev-parse --short HEAD) --build-arg BUILD_TIME=${{steps.date.outputs.date}} --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - if [[ $BRANCH_NAME == master ]]; then - VERSION=latest - else - VERSION=$BRANCH_NAME - fi - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. - - sonar_analysis: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Analyze with SonarCloud - run: | - cd pre-registration - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_${{ github.event.repository.name }} -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,workflow,job # selectable (default: repo,message) - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_DEVOPS_WEBHOOK }} # required - if: failure() # Pick up events even if the job fails or is canceled. diff --git a/.github/workflows/release-changes.yml b/.github/workflows/release-changes.yml new file mode 100644 index 00000000000..2579ea836f1 --- /dev/null +++ b/.github/workflows/release-changes.yml @@ -0,0 +1,26 @@ +name: Release/pre-release Preparation. + +on: + workflow_dispatch: + inputs: + MESSAGE: + description: 'Triggered for release or pe-release' + required: false + default: 'Release Preparation' + RELEASE_TAG: + description: 'tag to update' + required: true + SNAPSHOT_TAG: + description: 'tag to be replaced' + required: true + BASE: + description: 'base branch for PR' + required: true +jobs: + maven-release-preparation: + uses: mosip/kattu/.github/workflows/release-changes.yml@master + with: + MESSAGE: ${{ inputs.MESSAGE }} + RELEASE_TAG: ${{ inputs.RELEASE_TAG }} + SNAPSHOT_TAG: ${{ inputs.SNAPSHOT_TAG }} + BASE: ${{ inputs.BASE }} \ No newline at end of file diff --git a/.github/workflows/release_changes.yml b/.github/workflows/release_changes.yml deleted file mode 100644 index cc9c2956d9e..00000000000 --- a/.github/workflows/release_changes.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Release/pre-release Preparation. - -on: - workflow_dispatch: - inputs: - message: - description: 'Triggered for release or pe-release' - required: false - default: 'Release Preparation' - releaseTags: - description: 'tag to update' - required: true - snapshotTags: - description: 'tag to be replaced' - required: true - base: - description: 'base branch for PR' - required: true -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Mannualy changing the pom versions - run: find . -type f -name "*pom.xml" -print0 | xargs -0 sed -i "s/${{ github.event.inputs.snapshotTags }}/${{ github.event.inputs.releaseTags }}/g" - - - name: Updating the Release URL in POM - run: | - cd .github/workflows - sed -i 's/OSSRH_SNAPSHOT_URL/RELEASE_URL/g' push_trigger.yml - - - name: Updating libs-snapshot-local to libs-release local for artifactory URL's. - run: find . -type f -name "*Dockerfile" -print0 | xargs -0 sed -i "s/libs-snapshot-local/libs-release-local/g" - - - name: removing -DskipTests - run: find . -type f -name "*push_trigger.yml" -print0 | xargs -0 sed -i "s/"-DskipTests"//g" - -# - name: removing --Dgpg.skip -# run: find . -type f -name "*push_trigger.yml" -print0 | xargs -0 sed -i "s/"-Dgpg.skip"//g" - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ secrets.ACTION_PAT }} - commit-message: Updated Pom versions for release changes - title: Release changes - body: Automated PR for ${{ github.event.inputs.releaseTags }} release. - branch: release-branch - delete-branch: true - base: ${{ github.event.inputs.base }} diff --git a/.github/workflows/release_trigger.yml b/.github/workflows/release_trigger.yml deleted file mode 100644 index 3b850afb55c..00000000000 --- a/.github/workflows/release_trigger.yml +++ /dev/null @@ -1,626 +0,0 @@ -name: Release maven packages and docker upon a release - -on: - release: - types: [published] - -jobs: - build: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - echo "::set-env name=GPG_TTY::$(tty)" - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Upload the springboot jars - uses: actions/upload-artifact@v1 - with: - name: release - path: ./release.zip - - - publish_to_nexus: - needs: build - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - echo "::set-env name=GPG_TTY::$(tty)" - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Build with Maven - run: | - cd pre-registration - mvn -B package --file pom.xml -s $GITHUB_WORKSPACE/settings.xml - - name: Publish the maven package - run: | - chmod +x ./deploy.sh - ./deploy.sh pre-registration $GITHUB_WORKSPACE/settings.xml .* - env: - GITHUB_TOKEN: ${{ secrets.access_token }} - GPG_TTY: $(tty) - - name: Analyze with SonarCloud - run: | - cd pre-registration - mvn -B verify sonar:sonar -Dsonar.projectKey=${{ secrets.PROJECT_KEY }} -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - -# docker-pre-registration-booking-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-booking-service -# SERVICE_LOCATION: pre-registration/pre-registration-booking-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-booking-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-login-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-login-service -# SERVICE_LOCATION: pre-registration/pre-registration-login-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-login-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - docker-pre-registration-batchjob: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-batchjob - SERVICE_LOCATION: pre-registration/pre-registration-batchjob - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-batchjob - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - docker-pre-registration-datasync-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-datasync-service - SERVICE_LOCATION: pre-registration/pre-registration-datasync-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-datasync-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION -# docker-pre-registration-demographic-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-demographic-service -# SERVICE_LOCATION: pre-registration/pre-registration-demographic-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-demographic-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-document-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-document-service -# SERVICE_LOCATION: pre-registration/pre-registration-document-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-document-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-generateqrcode-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-generateqrcode-service -# SERVICE_LOCATION: pre-registration/pre-registration-generateqrcode-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-generateqrcode-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-notification-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-notification-service -# SERVICE_LOCATION: pre-registration/pre-registration-notification-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-notification-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -# docker-pre-registration-transliteration-service: -# needs: build - -# runs-on: ubuntu-latest -# env: -# NAMESPACE: mosipdev -# SERVICE_NAME: pre-registration-transliteration-service -# SERVICE_LOCATION: pre-registration/pre-registration-transliteration-service - -# steps: -# - uses: actions/checkout@v2 -# - uses: actions/download-artifact@v1 -# with: -# name: release -# path: ./ - -# - name: Setup branch name -# run: | -# # Strip git ref prefix from version -# echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" -# echo ${{ env.BRANCH_NAME }} - -# - name: Get version info from pom -# id: getPomVersion -# uses: mavrosxristoforos/get-xml-info@1.0 -# with: -# xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml -# xpath: /*[local-name()="project"]/*[local-name()="version"] - -# - name: Unzip and extract the pre-registration-transliteration-service -# run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME - -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# echo "push version ${{steps.getPomVersion.outputs.info}}" -# VERSION=$BRANCH_NAME -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION - - docker-pre-registration-captcha-service: - needs: build - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: pre-registration-captcha-service - SERVICE_LOCATION: pre-registration/pre-registration-captcha-service - - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v1 - with: - name: release - path: ./ - - - name: Setup branch name - run: | - # Strip git ref prefix from version - echo "::set-env name=BRANCH_NAME::$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" - echo ${{ env.BRANCH_NAME }} - - - name: Get version info from pom - id: getPomVersion - uses: mavrosxristoforos/get-xml-info@1.0 - with: - xml-file: ./${{ env.SERVICE_LOCATION }}/pom.xml - xpath: /*[local-name()="project"]/*[local-name()="version"] - - - name: Unzip and extract the pre-registration-transliteration-service - run: unzip -uj "release.zip" "${{ env.SERVICE_LOCATION }}/target/*" -d "./${{ env.SERVICE_LOCATION }}/target" - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - echo "push version ${{steps.getPomVersion.outputs.info}}" - VERSION=$BRANCH_NAME - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION diff --git a/.github/workflows/tag.yml b/.github/workflows/tag.yml new file mode 100644 index 00000000000..73c55b03d8f --- /dev/null +++ b/.github/workflows/tag.yml @@ -0,0 +1,33 @@ +name: Tagging of repos + +on: + workflow_dispatch: + inputs: + TAG: + description: 'Tag to be published' + required: true + type: string + BODY: + description: 'Release body message' + required: true + default: 'Changes in this Release' + type: string + PRE_RELEASE: + description: 'Pre-release? True/False' + required: true + default: False + type: string + DRAFT: + description: 'Draft? True/False' + required: false + default: False + type: string + +jobs: + tag-branch: + uses: mosip/kattu/.github/workflows/tag.yml@master + with: + TAG: ${{ inputs.TAG }} + BODY: ${{ inputs.BODY }} + PRE_RELEASE: ${{ inputs.PRE_RELEASE }} + DRAFT: ${{ inputs.DRAFT }} \ No newline at end of file