Skip to content

Commit

Permalink
feat(ci): implement trigger (#162)
Browse files Browse the repository at this point in the history
  • Loading branch information
qui-pham authored Jan 5, 2024
2 parents ef70d70 + f67d1de commit 97c4c7d
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 2 deletions.
87 changes: 87 additions & 0 deletions .github/workflows/create-PR-deploy-to-feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Create Pull Request From Deploy to Feature
on:
push:
branches:
- 'deploy/*'

permissions:
contents: write
pull-requests: write

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

env:
HEAD_BRANCH: ${{ github.head_ref || github.ref_name }}

jobs:
fetchAllFeatureBranches:
runs-on: ubuntu-latest

steps:
- id: step1
name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- id: step2
name: List all the remote feature branches
run: |
branches=$(git branch -r | grep -E '.*origin\/feature\/.*' | sed -e "s/.*origin\///" | tr "\n" " ")
JSON="["
for branch in ${branches[@]}; do
echo $branch
JSONline="\"$branch\","
# we don't need to iterate on the same branch over and over, so
# onnly include it when it wasn't included
if [[ "$JSON" != *"$JSONline"* ]]; then
JSON="$JSON$JSONline"
fi
done
# Remove last "," and add the closing bracket
if [[ $JSON == *, ]]; then
JSON="${JSON%?}"
fi
JSON="$JSON]"
echo $JSON
echo "BRANCHES={\"branch_name\": $( echo "$JSON" )}" >> "$GITHUB_OUTPUT"
outputs:
BRANCHES: ${{ steps.step2.outputs.BRANCHES }}

mergeRelease2FeatureRepo:
runs-on: ubuntu-latest
needs: fetchAllFeatureBranches
strategy:
matrix: ${{ fromJSON(needs.fetchAllFeatureBranches.outputs.BRANCHES) }}
steps:
- name: Set env
run: |
echo "PR_BRANCH=merge/${HEAD_BRANCH}-${{matrix.branch_name}}" >> $GITHUB_ENV
echo "FEATURE_NAME=$(echo ${{matrix.branch_name}} | cut -d'/' -f2)" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
ref: ${{matrix.branch_name}}
- name: Reset promotion branch
run: |
git fetch origin ${HEAD_BRANCH}:${HEAD_BRANCH}
git reset --hard ${HEAD_BRANCH}
- name: Render template
id: template
uses: chuhlomin/[email protected]
with:
template: .github/template/create-pull-request.md
vars: |
fromBranch: ${{env.HEAD_BRANCH}}
toBranch: ${{matrix.branch_name}}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
labels: automated PR
delete-branch: true
title: 'chore(`${{env.FEATURE_NAME}}`): merge from `${{env.HEAD_BRANCH}}`'
body: ${{ steps.template.outputs.result }}
branch: ${{env.PR_BRANCH}}
42 changes: 42 additions & 0 deletions .github/workflows/create-PR-deploy-to-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Create PR Deploy to Release

on:
push:
branches:
- deploy/*

env:
HEAD_BRANCH: ${{ github.head_ref || github.ref_name }}

permissions:
contents: write
pull-requests: write

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set Env
run: |
echo "PR_BRANCH=merge/${HEAD_BRANCH}" >> $GITHUB_ENV
echo "VERSION=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/.*deploy\///' | cut -d'-' -f1)" >> $GITHUB_ENV
echo "NETWORK=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/.*deploy\/v[0-9\.]*-\(.*\)/\1/')" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: 'release/${{ env.VERSION }}'

- name: Reset promotion branch
run: |
git fetch origin ${HEAD_BRANCH}:${HEAD_BRANCH}
git reset --hard ${HEAD_BRANCH}
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 #v5.0.2
with:
labels: automated PR
delete-branch: true
title: 'chore(`release/${{ env.VERSION }}`): merge from `${{ env.HEAD_BRANCH}}`'
body: ${{ steps.template.outputs.result }}
branch: ${{ env.PR_BRANCH }}
5 changes: 3 additions & 2 deletions .github/workflows/merge-release-to-network.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ jobs:
- name: Set Env
run: |
echo "PR_BRANCH=merge/${HEAD_BRANCH}" >> $GITHUB_ENV
echo "VERSION=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/deploy\///' | cut -d'-' -f1)" >> $GITHUB_ENV
echo "NETWORK=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/deploy\/v[0-9\.]*-\(.*\)/\1/')" >> $GITHUB_ENV
echo "VERSION=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/.*deploy\///' | cut -d'-' -f1)" >> $GITHUB_ENV
echo "NETWORK=$(echo -n ${{ env.HEAD_BRANCH }} | sed 's/.*deploy\/v[0-9\.]*-\(.*\)/\1/')" >> $GITHUB_ENV
- name: Set Mainnet Tag
if: ${{ env.NETWORK == 'mainnet' }}
Expand Down Expand Up @@ -72,5 +72,6 @@ jobs:
gh release create "$tag" \
--repo="$GITHUB_REPOSITORY" \
--title="${{ env.NETWORK }} - ${{ env.VERSION }}" \
--notes-start-tag="v0.3.2-testnet" \
--generate-notes

0 comments on commit 97c4c7d

Please sign in to comment.