mirror of
https://github.com/yairm210/Unciv.git
synced 2025-01-05 13:08:48 +07:00
fed54a4b0b
Also updated setup-node to v4, latest
90 lines
4.7 KiB
YAML
90 lines
4.7 KiB
YAML
name: UncivBot
|
|
|
|
on:
|
|
issue_comment:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
prepare_version_for_rollout:
|
|
if: github.event_name == 'issue_comment' && (github.event.comment.body == 'summary' || github.event.comment.body == 'prepare version') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
|
# This is the only place I could find an apparent list of valid author associations. Also, at least they're not case-sensitive: https://docs.github.com/en/graphql/reference/enums#commentauthorassociation https://docs.github.com/en/actions/learn-github-actions/expressions#contains
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
- name: Generate new buildConfig.kt and changelog.md files
|
|
run: |
|
|
npm i @octokit/rest
|
|
node .github/workflows/incrementVersionAndChangelog.mjs
|
|
|
|
rm -rf node_modules # Now we need to remove extraneous node.js parts before commit
|
|
rm package-lock.json
|
|
rm package.json
|
|
|
|
- name: Create new branch with changes
|
|
uses: EndBug/add-and-commit@v9 # You can change this to use a specific version.
|
|
with:
|
|
new_branch: version_rollout
|
|
message: 'Bump version and create initial changelog entry'
|
|
|
|
- name: Add translation PRs to the new branch, and PR the new branch to master
|
|
run: |
|
|
npm i @octokit/rest
|
|
node .github/workflows/mergeTranslations.mjs ${{ secrets.ACTIONS_ACCESS_TOKEN }} ${{ github.event.issue.number }} version_rollout
|
|
|
|
release_patch_version:
|
|
if: github.event_name == 'issue_comment' && (github.event.comment.body == 'release patch') && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
|
|
# This is the only place I could find an apparent list of valid author associations. Also, at least they're not case-sensitive: https://docs.github.com/en/graphql/reference/enums#commentauthorassociation https://docs.github.com/en/actions/learn-github-actions/expressions#contains
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Merge Pull Request
|
|
uses: actions/github-script@v5
|
|
with:
|
|
github-token: ${{ secrets.ACTIONS_ACCESS_TOKEN }} # Required because default workflow token can't merge PRs
|
|
script: |
|
|
const repository = context.repo
|
|
await github.rest.pulls.merge({
|
|
merge_method: "squash",
|
|
owner: repository.owner,
|
|
pull_number: ${{ github.event.issue.number }},
|
|
repo: repository.repo,
|
|
})
|
|
|
|
- uses: actions/checkout@v4
|
|
with: # Required for triggering the deploy on tags added by this automation
|
|
# See https://github.com/stefanzweifel/git-auto-commit-action#commits-made-by-this-action-do-not-trigger-new-workflow-runs
|
|
token: ${{ secrets.ACTIONS_ACCESS_TOKEN }}
|
|
ref: master # By default will checkout *the version at time of trigger* which does *not* contain the PR we just merged!
|
|
|
|
- uses: actions/setup-node@v4
|
|
|
|
- name: Increment version and release
|
|
run: |
|
|
export version=$(node .github/workflows/releasePatch.mjs)
|
|
echo "VERSION=$version" >> "$GITHUB_ENV"
|
|
|
|
- uses: stefanzweifel/git-auto-commit-action@v5
|
|
with:
|
|
commit_message: ${{env.VERSION}}
|
|
tagging_message: ${{env.VERSION}}
|
|
|
|
merge_translations:
|
|
if: github.event_name == 'workflow_dispatch' || (github.event.comment.body == 'merge translations' && contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association))
|
|
# This is the only place I could find an apparent list of valid author associations. Also, at least they're not case-sensitive: https://docs.github.com/en/graphql/reference/enums#commentauthorassociation https://docs.github.com/en/actions/learn-github-actions/expressions#contains
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
- name: Add translation PRs to the new branch, and PR the new branch to master
|
|
|
|
# SO, the story is that when using the default access token you CANNOT merge PRs from forks.
|
|
# _Badly_ documented in multiple places, including here: https://docs.github.com/en/actions/reference/authentication-in-a-workflow
|
|
# To get around this, we created a Personal Access Token,
|
|
# put it as one of the secrets in the repo settings (https://github.com/yairm210/Unciv/settings/secrets/actions),
|
|
# and use that instead.
|
|
run: |
|
|
npm i @octokit/rest
|
|
node .github/workflows/mergeTranslations.js ${{ secrets.ACTIONS_ACCESS_TOKEN }} ${{ github.event.issue.number }} translations
|