From 3865a870978a4e0ca0195da5c8aa3d4c015eb824 Mon Sep 17 00:00:00 2001 From: Andy Wu Date: Thu, 18 Jan 2024 12:31:01 -0800 Subject: [PATCH] [fix] pr branch name (#36) [fix] add all conditions checks back --- .github/workflows/ci-publish.yaml | 34 +++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-publish.yaml b/.github/workflows/ci-publish.yaml index 6ad63276..b676f051 100644 --- a/.github/workflows/ci-publish.yaml +++ b/.github/workflows/ci-publish.yaml @@ -6,8 +6,8 @@ on: branches: - main # Triggered only when package.json is modified - # paths: - # - 'package.json' + paths: + - 'package.json' # Triggered only the PR is merged types: [opened, synchronize, reopened, closed] @@ -15,24 +15,29 @@ jobs: # Add timestamp timestamp: runs-on: ubuntu-latest - # Trigger the workflow only if the PR is from dev branch - # if: ${{ github.event.pull_request.head.repo.full_name == 'dev2' }} + outputs: + PR_BRANCH_NAME: ${{ steps.get_pr_branch_name.outputs.PR_BRANCH_NAME }} steps: - name: Generate timestamp run: | echo "TIMESTAMP=$(TZ='America/Los_Angeles' date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV - echo ${{ github.event.pull_request.head.repo.full_name }} + echo ${{ github.head_ref }} - name: Print timestamp run: | echo "Execution time (Pacific Time Zone): $TIMESTAMP" + - name: Get PR branch name + id: get_pr_branch_name + run: | + echo "PR_BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_OUTPUT + # Parse version from main branch parse-package-version-main: runs-on: ubuntu-latest needs: timestamp # Trigger the workflow only if the PR is from dev branch - if: ${{ github.event.pull_request.head.repo.full_name == 'dev2' }} + if: ${{ needs.timestamp.outputs.PR_BRANCH_NAME == 'dev' }} outputs: MAIN_VERSION: ${{ steps.parse_package_json.outputs.MAIN_VERSION }} steps: @@ -47,14 +52,13 @@ jobs: run: | content=$(cat package.json) echo "MAIN_VERSION=$(echo $content | jq -r '.version')" >> $GITHUB_OUTPUT - echo "MAIN_VERSION=$MAIN_VERSION" # Parse version from dev branch parse-package-version-dev: runs-on: ubuntu-latest needs: timestamp # Trigger the workflow only if the PR is from dev branch - if: ${{ github.event.pull_request.head.repo.full_name == 'dev2' }} + if: ${{ needs.timestamp.outputs.PR_BRANCH_NAME == 'dev' }} outputs: DEV_VERSION: ${{ steps.parse_package_json.outputs.DEV_VERSION }} steps: @@ -69,14 +73,22 @@ jobs: run: | content=$(cat package.json) echo "DEV_VERSION=$(echo $content | jq -r '.version')" >> $GITHUB_OUTPUT - echo "DEV_VERSION=$DEV_VERSION" build-test-publish: runs-on: ubuntu-latest - needs: [parse-package-version-main, parse-package-version-dev] + needs: [timestamp, parse-package-version-main, parse-package-version-dev] # Trigger the workflow only if the PR is from dev branch, and DEV_VERSION is different from MAIN_VERSION - if: github.event.pull_request.head.repo.full_name == 'dev2' && needs.parse-package-version-main.outputs.MAIN_VERSION != needs.parse-package-version-dev.outputs.DEV_VERSION + if: ${{ needs.timestamp.outputs.PR_BRANCH_NAME == 'dev' }} && needs.parse-package-version-main.outputs.MAIN_VERSION != needs.parse-package-version-dev.outputs.DEV_VERSION steps: + - name: QA Check + run: | + echo "MAIN_VERSION=${{ needs.parse-package-version-main.outputs.MAIN_VERSION }}" + echo "DEV_VERSION=${{ needs.parse-package-version-dev.outputs.DEV_VERSION }}" + if [ "${{ needs.parse-package-version-main.outputs.MAIN_VERSION }}" == "${{ needs.parse-package-version-dev.outputs.DEV_VERSION }}" ]; then + echo "QA Check failed: MAIN_VERSION and DEV_VERSION are the same" + exit 1 + fi + - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1