Created
August 2, 2025 09:33
-
-
Save amitastreait/76a29034e088d0d6f4eaa5687c46cdff to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Deploy to Sandbox in Cloudhub | |
| on: | |
| push: | |
| branches: | |
| - feature/* | |
| - developer | |
| paths: | |
| - 'src/**' | |
| pull_request: | |
| branches: | |
| - master | |
| - main | |
| types: | |
| - closed | |
| paths: | |
| - 'src/**' | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} | |
| NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} | |
| ANYPOINT_USERNAME: ${{ secrets.ANYPOINT_USERNAME }} | |
| ANYPOINT_PASSWORD: ${{ secrets.ANYPOINT_PASSWORD }} | |
| SANDBOX_CLIENT_ID: ${{ secrets.SANDBOX_CLIENT_ID }} | |
| SANDBOX_CLIENT_SECRET: ${{ secrets.SANDBOX_CLIENT_SECRET }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SECURE_KEY: ${{ secrets.SECURE_KEY}} | |
| SETTINGS_FILE: ${{ secrets.SETTINGS_FILE}} | |
| steps: | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: starting | |
| channel: '#workflows' | |
| message: Buliding {{ env.GITHUB_REF_NAME }} branch with Maven build | |
| if: always() | |
| - uses: actions/checkout@v3 | |
| id: checkout-code | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/cache@v3.2.1 | |
| id: prepare-chache | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| - name: Set up Java JDK | |
| id: setup-jdk | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'zulu' | |
| java-version: 8 | |
| - name: Build with Maven | |
| id: maven-build | |
| run: mvn clean -B package -s .maven/settings.xml | |
| # run: mvn -B package --file pom.xml | |
| - name: Stamp artifact file name with commit hash | |
| id: prepare-artifacts | |
| run: | | |
| artifactName1=$(ls target/*.jar | head -1) | |
| commitHash=$(git rev-parse --short "$GITHUB_SHA") | |
| artifactName2=$(ls target/*.jar | head -1 | sed "s/.jar/-$commitHash.jar/g") | |
| mv $artifactName1 $artifactName2 | |
| - name: Upload artifact | |
| id: upload-artifacts | |
| uses: actions/upload-artifact@master | |
| with: | |
| name: artifacts | |
| path: target/*.jar | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: ${{ job.status }} | |
| steps: ${{ toJson(steps) }} | |
| channel: '#workflows' | |
| if: always() | |
| test: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Checking Cache | |
| uses: actions/cache@v3 | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| - name: Build with Maven | |
| run: mvn clean test -DruntimeProduct=MULE_EE | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: ${{ job.status }} | |
| steps: ${{ toJson(steps) }} | |
| channel: '#workflows' | |
| if: always() | |
| deploy: | |
| needs: test | |
| runs-on: ubuntu-latest | |
| env: | |
| NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} | |
| NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} | |
| ANYPOINT_USERNAME: ${{ secrets.ANYPOINT_USERNAME }} | |
| ANYPOINT_PASSWORD: ${{ secrets.ANYPOINT_PASSWORD }} | |
| CLIENT_ID: ${{ secrets.SANDBOX_CLIENT_ID }} | |
| CLIENT_SECRET: ${{ secrets.SANDBOX_CLIENT_SECRET }} | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| SECURE_KEY: ${{ secrets.SECURE_KEY}} | |
| SETTINGS_FILE: ${{ secrets.SETTINGS_FILE}} | |
| steps: | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: starting | |
| channel: '#workflows' | |
| message: Starting Maven Test | |
| if: always() | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: starting | |
| channel: '#workflows' | |
| message: Starting Maven Deploy | |
| if: always() | |
| - uses: actions/checkout@v3 | |
| id: checkout-code | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Java JDK | |
| id: setup-jdk | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'zulu' | |
| java-version: 8 | |
| - uses: actions/cache@v3.2.1 | |
| id: prepare-cache | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-maven- | |
| - uses: actions/download-artifact@master | |
| id: download-mule-artifacts | |
| with: | |
| name: artifacts | |
| - name: Deploy to Sandbox | |
| id: deploy-mule-artifacts | |
| #env: | |
| #USERNAME: ${{ secrets.ANYPOINT_USERNAME }} | |
| #PASSWORD: ${{ secrets.ANYPOINT_PASSWORD }} | |
| #SECURE_KEY: ${{ secrets.SECURE_KEY}} | |
| #SETTINGS_FILE: ${{ secrets.SETTINGS_FILE}} | |
| run: | | |
| # Test the Deployment | |
| #mvn clean package install | |
| #mvn clean deploy -DmuleDeploy | |
| # Deployment using Username & Password | |
| mvn clean package deploy -DmuleDeploy -DskipTests -s .maven/settings.xml -Danypoint.password=${{ env.ANYPOINT_PASSWORD }} -Danypoint.username=${{ env.ANYPOINT_USERNAME }} -Denv=Sandbox -DbusinessGroup=PantherSchools -DwokerType=MICRO -DworkerSize=1 -Dmule.version=4.4.0 -Dsecure.key=${{env.SECURE_KEY}} -DenvProp=dev | |
| # Deployment using Connected Application | |
| #mvn clean package deploy -DmuleDeploy -DskipTests -s .maven/settings.xml -Dapp.id=${{ env.CLIENT_ID }} -Dapp.secret=${{ env.CLIENT_SECRET }} -Denv=Sandbox -DbusinessGroup=PantherSchools -DwokerType=MICRO -DworkerSize=1 -Dmule.version=4.4.0 -Dsecure.key=${{env.SECURE_KEY}} -DenvProp=dev | |
| - uses: act10ns/slack@v2 | |
| with: | |
| status: ${{ job.status }} | |
| steps: ${{ toJson(steps) }} | |
| channel: '#workflows' | |
| if: always() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment