on: push: branches: - main name: release-please env: ACTION_NAME: release-please-action jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: install run: npm install - name: build run: npm run build - name: commit run: |- set -e # get current commit hash CURRENT_HASH=$(git rev-parse HEAD) # get last commit hash of last build dist LAST_BUILD_HASH=$(git log --author=google-github-actions-bot -1 --pretty=format:"%H") DIFF="" # build and commit dist if diff git config --global user.name "actions-bot" git config user.email 'github-actions-bot@google.com' git add dist/ git diff-index --quiet HEAD || git commit -m "chore: build dist ${ACTION_NAME}" # if last commit hash of last build dist was found, get logs of commits in btw for PR body if [ -z "$LAST_BUILD_HASH" ] then echo "Unable to find last commit by bot, skipping diff gen" else DIFF=$(git log ${LAST_BUILD_HASH}...${CURRENT_HASH} --oneline) echo $DIFF fi # set env vars echo "CURRENT_HASH=${CURRENT_HASH}" >> $GITHUB_ENV echo "LAST_BUILD_HASH=${LAST_BUILD_HASH}" >> $GITHUB_ENV echo 'DIFF<> $GITHUB_ENV echo "${DIFF}" >> $GITHUB_ENV echo 'EOF' >> $GITHUB_ENV - name: Create PR with dist uses: peter-evans/create-pull-request@v3 with: token: ${{ secrets.ACTIONS_BOT_TOKEN }} commit-message: Build dist author: "actions-bot " title: "chore: build dist" body: | Build dist PR ${{env.DIFF}} labels: automated pr branch: create-pull-request/build-dist delete-branch: true push-to-fork: google-github-actions-bot/${{env.ACTION_NAME}} release-please-pr: runs-on: ubuntu-latest needs: [build] steps: - id: release-pr uses: GoogleCloudPlatform/release-please-action@v2 with: token: ${{ secrets.ACTIONS_BOT_TOKEN }} release-type: node fork: true package-name: ${{env.ACTION_NAME}} command: release-pr - id: label if: ${{ steps.release-pr.outputs.pr }} uses: actions/github-script@v3 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); await github.issues.addLabels({ owner, repo, issue_number: ${{steps.release-pr.outputs.pr}}, labels: ['autorelease: pending'] }); console.log(`Tagged ${{steps.release-pr.outputs.pr}}`) release-please-release: runs-on: ubuntu-latest needs: [build] steps: - uses: GoogleCloudPlatform/release-please-action@v2 id: release with: token: ${{ secrets.GITHUB_TOKEN }} release-type: node package-name: ${{env.ACTION_NAME}} command: github-release - uses: actions/checkout@v2 - name: tag major and patch versions run: | git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com git remote add gh-token "https://${{ secrets.GITHUB_TOKEN}}@github.com/google-github-actions/release-please-action.git" git tag -d v${{ steps.release.outputs.major }} || true git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true git push origin :v${{ steps.release.outputs.major }} || true git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }}" git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}" git push origin v${{ steps.release.outputs.major }} git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} if: ${{ steps.release.outputs.release_created }}