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' jobs: generate: 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 with: token: ${{ secrets.MY_REPO_PAT }} submodules: recursive - name: Set Node.js 16.x 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 - name: Install dependency run: yarn - name: AppCenter login run: appcenter login --token ${{ secrets.APP_CENTER_LOGIN_TOKEN }} - name: CodePush QA if: ((github.event.inputs.environment == 'QA' || inputs.environment == 'QA')) run: yarn move:qa && appcenter codepush release-react -a nfa-navi.com/nfa-app -d Staging -t "${{github.event.inputs.target_versions}}" --description "${{github.event.inputs.description}}" - 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.MY_REPO_PAT }}" \ -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