diff --git a/.github/workflows/codePush.yml b/.github/workflows/codePush.yml index 748c5f0c..996991e4 100644 --- a/.github/workflows/codePush.yml +++ b/.github/workflows/codePush.yml @@ -3,26 +3,29 @@ name: code-push-cli on: workflow_dispatch: inputs: - environment: - description: Choose build environment - required: true - type: choice - options: - - QA - - Prod - target_versions: - description: please enter target versions - required: true - type: string - default: "2.3.4" - description: - description: Enter please add change log - required: true - type: string - default: "login sso" + environment: + description: Choose build environment + required: true + type: choice + options: + - QA + - Prod + target_versions: + description: please enter target versions + required: true + type: string + default: '2.3.4' + description: + description: Enter please add change log + required: true + type: string + default: 'login sso' jobs: generate: - runs-on: [ default ] + runs-on: [default] + outputs: + package_version: ${{ steps.get_version.outputs.version }} + build_number: ${{ steps.get_package_info.outputs.buildNumber }} steps: - name: Checkout uses: actions/checkout@v2 @@ -33,10 +36,15 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16.x + - name: Get version from package.json + id: get_version + run: | + echo "::set-output name=version::$(node -p "require('./package.json').version")" + echo "::set-output name=buildNumber::$(node -p "require('./package.json').buildNumber")" - name: Install yarn run: npm install --global yarn - name: Install appcenter cli - run: npm install -g appcenter-cli + run: npm install -g appcenter-cli - name: Install dependency run: yarn - name: AppCenter login @@ -47,3 +55,32 @@ jobs: - name: CodePush Prod if: ((github.event.inputs.environment == 'Prod' || inputs.environment == 'Prod')) run: yarn move:prod && appcenter codepush release-react -a nfa-navi.com/nfa-app -d Production -t "${{github.event.inputs.target_versions}}" --description "${{github.event.inputs.description}}" + + create_release_tag: + needs: generate + runs-on: ubuntu-latest + if: success() && (github.event.inputs.environment == 'QA') # Only create tag for Prod releases, have put QA for testing + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Create release tag + run: | + TAG_NAME="${{ needs.generate.outputs.package_version }}" + RELEASE_NAME="$TAG_NAME (build ${{ needs.generate.outputs.build_number }})" + DESCRIPTION="${{ github.event.inputs.description }}" + + # Create a release tag using the GitHub API + curl \ + -X POST \ + -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d '{ + "tag_name": "'$TAG_NAME'", + "target_commitish": "main", + "name": "'$RELEASE_NAME'", + "body": "'$DESCRIPTION'", + "draft": false, + "prerelease": false + }' \ + https://api.github.com/repos/${{ github.repository }}/releases