0355f63a48
* no-auto-squash: true so it DTRT for merged & squashed PRs * target-branch-pattern: replaces the ad-hoc logic to determine the target branch name It also now supports backporting to multiple branches. This is not going to be immediately useful but will greatly help in three months when there are two releases receiving backports.
56 lines
1.7 KiB
YAML
56 lines
1.7 KiB
YAML
# Copyright 2024 The Forgejo Authors
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# To modify this workflow:
|
|
#
|
|
# - change pull_request_target: to pull_request:
|
|
# so that it runs from a pull request instead of the default branch
|
|
#
|
|
# - push it to the wip-ci-backport branch on the forgejo repository
|
|
# otherwise it will not have access to the secrets required to push
|
|
# the PR
|
|
#
|
|
# - open a pull request targetting wip-ci-backport that includes a change
|
|
# that can be backported without conflict in v1.21 and set the
|
|
# `backport/v1.21` label.
|
|
#
|
|
# - once it works, open a pull request for the sake of keeping track
|
|
# of the change even if the PR won't run it because it will use
|
|
# whatever is in the default branch instead
|
|
#
|
|
# - after it is merged, double check it works by setting a
|
|
# `backport/v1.21` label on a merged pull request that can be backported
|
|
# without conflict.
|
|
#
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- closed
|
|
- labeled
|
|
|
|
jobs:
|
|
backporting:
|
|
if: >
|
|
!startsWith(vars.ROLE, 'forgejo-') && (
|
|
github.event.pull_request.merged
|
|
&&
|
|
contains(toJSON(github.event.pull_request.labels), 'backport/v')
|
|
)
|
|
runs-on: docker
|
|
container:
|
|
image: 'docker.io/node:20-bookworm'
|
|
steps:
|
|
- name: event info
|
|
run: |
|
|
cat <<'EOF'
|
|
${{ toJSON(github) }}
|
|
EOF
|
|
- uses: https://code.forgejo.org/actions/git-backporting@v4.8.0
|
|
with:
|
|
target-branch-pattern: "^backport/(?<target>(v.*))$"
|
|
strategy: ort
|
|
strategy-option: find-renames
|
|
cherry-pick-options: -x
|
|
auth: ${{ secrets.BACKPORT_TOKEN }}
|
|
pull-request: ${{ github.event.pull_request.url }}
|
|
auto-no-squash: true
|