github.com/hashicorp/packer@v1.14.3/.github/workflows/backport.yml (about) 1 --- 2 name: Backport Assistant Runner 3 4 on: 5 pull_request_target: 6 types: 7 - closed 8 - labeled 9 10 permissions: 11 contents: read 12 13 jobs: 14 backport: 15 permissions: 16 contents: none 17 if: github.event.pull_request.merged 18 runs-on: ubuntu-latest 19 container: hashicorpdev/backport-assistant:v0.5.8 20 steps: 21 - name: Backport changes to stable-website 22 run: | 23 backport-assistant backport -automerge 24 env: 25 BACKPORT_LABEL_REGEXP: "backport/(?P<target>website)" 26 BACKPORT_TARGET_TEMPLATE: "stable-{{.target}}" 27 GITHUB_TOKEN: ${{ secrets.ELEVATED_GITHUB_TOKEN }} 28 - name: Backport changes to latest release branch 29 run: | 30 resp=$(curl -f -s "https://api.github.com/repos/$GITHUB_REPOSITORY/labels?per_page=100") 31 ret="$?" 32 if [[ "$ret" -ne 0 ]]; then 33 echo "The GitHub API returned $ret" 34 exit $ret 35 fi 36 # get the latest backport label excluding any website labels, ex: `backport/0.3.x` and not `backport/website` 37 latest_backport_label=$(echo "$resp" | jq -r '.[] | select(.name | (startswith("backport/") and (contains("website") | not))) | .name' | sort -rV | head -n1) 38 echo "Latest backport label: $latest_backport_label" 39 # set BACKPORT_TARGET_TEMPLATE for backport-assistant 40 # trims backport/ from the beginning with parameter substitution 41 export BACKPORT_TARGET_TEMPLATE="release/${latest_backport_label#backport/}" 42 backport-assistant backport -automerge 43 env: 44 BACKPORT_LABEL_REGEXP: "backport/(?P<target>website)" 45 GITHUB_TOKEN: ${{ secrets.ELEVATED_GITHUB_TOKEN }} 46 - name: Backport changes to targeted release branch 47 run: | 48 backport-assistant backport -automerge 49 env: 50 BACKPORT_LABEL_REGEXP: "backport/(?P<target>\\d+\\.\\d+\\.\\w+)" 51 BACKPORT_TARGET_TEMPLATE: "release/{{.target}}" 52 GITHUB_TOKEN: ${{ secrets.ELEVATED_GITHUB_TOKEN }}