mirror of
https://github.com/joaquinjsb/gitea-release-please-action
synced 2026-05-09 00:41:14 +02:00
<!-- Thank you for proposing a pull request! Please note that SOME TESTS WILL LIKELY FAIL due to how GitHub exposes secrets in Pull Requests from forks. Someone from the team will review your Pull Request and respond. Please describe your change and any implementation details below. -->
114 lines
4.3 KiB
YAML
114 lines
4.3 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
name: release-please
|
|
env:
|
|
ACTION_NAME: release-please-action
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
- name: install
|
|
run: npm ci
|
|
- 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<<EOF' >> $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 <github-actions-bot@google.com>"
|
|
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-release:
|
|
runs-on: ubuntu-latest
|
|
needs: [build]
|
|
steps:
|
|
- uses: google-github-actions/release-please-action@main
|
|
id: release
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
release-type: node
|
|
skip-github-pull-request: true
|
|
- 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 }}
|
|
release-please-pr:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- build
|
|
- release-please-release
|
|
steps:
|
|
- id: release-pr
|
|
uses: google-github-actions/release-please-action@main
|
|
with:
|
|
token: ${{ secrets.ACTIONS_BOT_TOKEN }}
|
|
release-type: node
|
|
fork: true
|
|
skip-github-release: true
|
|
- 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}}`)
|