From e014621cd3fd6ee67e0f8313ef8dfdbb5362efe3 Mon Sep 17 00:00:00 2001 From: pasant9 Date: Thu, 23 Nov 2023 17:28:20 +0530 Subject: [PATCH] Run workflow only if label added --- .github/workflows/adapter-release.yml | 30 ++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/.github/workflows/adapter-release.yml b/.github/workflows/adapter-release.yml index 9fdbcc304a..2af745d67d 100644 --- a/.github/workflows/adapter-release.yml +++ b/.github/workflows/adapter-release.yml @@ -47,6 +47,25 @@ jobs: build: runs-on: ubuntu-latest steps: + - name: Check PR Labels + id: label_check + run: | + valid_label=false + # Example: Label to check for + required_label="allow-workflow" + + for label in ${{ github.event.pull_request.labels.*.name }}; do + if [ "$label" == "$required_label" ]; then + valid_label=true + break + fi + done + + if [ "$valid_label" == "true" ]; then + echo "::set-output name=valid::true" + else + echo "::set-output name=valid::false" + fi - name: Install Go uses: actions/setup-go@v3 with: @@ -74,29 +93,33 @@ jobs: gh pr checkout ${{ github.event.number }} -b pr-${{ github.event.number }} git checkout pr-${{ github.event.number }} git merge origin/main + if: steps.label_check.outputs.valid == 'true' - name: Run Release Gradle build if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_version != '' && github.event.inputs.next_version != '' run: | cd apk-repo/adapter ./gradlew release -Prelease.useAutomaticVersion=true -Pdocker_organization=${{ secrets.DOCKER_ORGANIZATION }} -Pdocker_username=${{ secrets.DOCKER_USERNAME }} -Pdocker_password=${{ secrets.DOCKER_PASSWORD }} -Prelease.releaseVersion=${{ github.event.inputs.release_version }} -Prelease.newVersion=${{ github.event.inputs.next_version }} -PmultiArch=true + if: steps.label_check.outputs.valid == 'true' - name: Run Gradle Build run: | cd apk-repo/adapter ./gradlew build + if: steps.label_check.outputs.valid == 'true' - name: Run Gradle Build if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true run: | cd apk-repo/adapter ./gradlew docker_push -Pdocker_organization=${{ secrets.DOCKER_ORGANIZATION }} -Pdocker_username=${{ secrets.DOCKER_USERNAME }} -Pdocker_password=${{ secrets.DOCKER_PASSWORD }} -Pimage_version=latest -PmultiArch=true ./gradlew docker_push -Pdocker_organization=${{ secrets.DOCKER_ORGANIZATION }} -Pdocker_username=${{ secrets.DOCKER_USERNAME }} -Pdocker_password=${{ secrets.DOCKER_PASSWORD }} -Pimage_version=${{ github.sha }} -PmultiArch=true - + if: steps.label_check.outputs.valid == 'true' - name: Login to azure. if: ${{inputs.aks_deployment}} uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} + if: steps.label_check.outputs.valid == 'true' - name: Push Docker images to aks. - if: ${{inputs.aks_deployment}} + if: ${{inputs.aks_deployment}} && steps.label_check.outputs.valid == 'true' run: | az acr login -n ${{ secrets.AZURE_ACR_NAME }} cd apk-repo/adapter @@ -106,4 +129,5 @@ jobs: with: verbose: true # optional (default = false) directory: apk-repo/adapter - flags: adapter \ No newline at end of file + flags: adapter + if: steps.label_check.outputs.valid == 'true' \ No newline at end of file