Skip to content

Commit

Permalink
ci: Add feat
Browse files Browse the repository at this point in the history
  • Loading branch information
CycleBai committed Jul 29, 2024
1 parent cff2b93 commit 1df667b
Showing 1 changed file with 44 additions and 25 deletions.
69 changes: 44 additions & 25 deletions .github/workflows/auto_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- dev

jobs:
create_branch:
create_branch_and_pr:
runs-on: ubuntu-latest

outputs:
Expand Down Expand Up @@ -56,8 +56,8 @@ jobs:
git checkout dev
git pull origin dev
git checkout -b ${{ env.branch_name }}
echo "$(date +%s%N)" > timestamp # Create a file with current timestamp in nanoseconds
git add timestamp
echo "$(date +%s%N)" > timestamp.txt # Create a file with current timestamp in nanoseconds
git add timestamp.txt
git commit -m "Add timestamp file to ensure branch differences"
git push origin ${{ env.branch_name }}
Expand All @@ -67,51 +67,70 @@ jobs:
git fetch origin
git checkout ${{ env.branch_name }}
git pull origin ${{ env.branch_name }} --rebase
echo "$(date +%s%N)" > timestamp.txt # Create a file with current timestamp in nanoseconds
git add timestamp.txt
git commit -m "Add timestamp file to ensure branch differences"
git push origin ${{ env.branch_name }}
create_pr:
runs-on: ubuntu-latest
needs: create_branch

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Install GitHub CLI
run: sudo apt-get install gh

- name: Create Pull Request
if: needs.create_branch.outputs.branch_exists == 'false'
if: steps.check_branch.outputs.branch_exists == 'false'
id: create_pr
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ needs.create_branch.outputs.branch_name }}
branch: ${{ steps.hash_committer.outputs.branch_name }}
base: main
title: "Auto PR from ${{ needs.create_branch.outputs.branch_name }}"
body: "This is an automated PR created from ${{ needs.create_branch.outputs.branch_name }}"
title: "Auto PR from ${{ steps.hash_committer.outputs.branch_name }}"
body: "This is an automated PR created from ${{ steps.hash_committer.outputs.branch_name }}"
draft: false

- name: Wait for PR creation
if: needs.create_branch.outputs.branch_exists == 'false'
if: steps.check_branch.outputs.branch_exists == 'false'
run: sleep 30 # Wait for 30 seconds to ensure PR creation is processed

- name: Get PR number
if: needs.create_branch.outputs.branch_exists == 'false'
if: steps.check_branch.outputs.branch_exists == 'false'
id: get_pr_number
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pr_number=$(gh pr list --state open --head ${{ needs.create_branch.outputs.branch_name }} --json number -q '.[0].number')
pr_number=$(gh pr list --state open --head ${{ steps.hash_committer.outputs.branch_name }} --json number -q '.[0].number')
echo "pr_number=$pr_number" >> $GITHUB_ENV
echo "PR number: $pr_number"
- name: Append commit to existing PR
if: needs.create_branch.outputs.branch_exists == 'true'
if: steps.check_branch.outputs.branch_exists == 'true'
id: append_commit
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pr_number=$(gh pr list --state open --head ${{ needs.create_branch.outputs.branch_name }} --json number -q '.[0].number')
echo "pr_number=$pr_number" >> $GITHUB_ENV
gh pr comment $pr_number --body "New commits have been added to the PR."
pr_number=$(gh pr list --state open --head ${{ steps.hash_committer.outputs.branch_name }} --json number -q '.[0].number')
if [ -n "$pr_number" ]; then
echo "pr_number=$pr_number" >> $GITHUB_ENV
gh pr comment $pr_number --body "New commits have been added to the PR."
else
echo "No open PR found, creating a new one."
gh pr create --head ${{ steps.hash_committer.outputs.branch_name }} --base main --title "Auto PR from ${{ steps.hash_committer.outputs.branch_name }}" --body "This is an automated PR created from ${{ steps.hash_committer.outputs.branch_name }}"
sync_commits:
runs-on: ubuntu-latest
needs: create_branch_and_pr

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Install GitHub CLI
run: sudo apt-get install gh

- name: Configure git
run: |
git config --global user.name "${{ env.committer_username }}"
git config --global user.email "${{ env.committer_email }}"
- name: Fetch and rebase changes
run: |
git fetch origin
git checkout ${{ needs.create_branch_and_pr.outputs.branch_name }}
git pull origin dev --rebase
git push origin ${{ needs.create_branch_and_pr.outputs.branch_name }}

0 comments on commit 1df667b

Please sign in to comment.