workflows

This commit is contained in:
Xikaro 2025-07-25 23:07:36 +05:00
parent 58d7d99550
commit 77cb3a0aa6
2 changed files with 84 additions and 55 deletions

84
.github/workflows/create-pr.yml vendored Normal file
View file

@ -0,0 +1,84 @@
name: Project Build
run-name: "👾 Create Release PR"
on:
push:
branches:
- dev
paths-ignore:
- '**'
- '!CHANGELOG.md'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
create-pr:
name: 🤝 Create Release PR
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
- name: 📊 Get Pakku Info
id: pakku_info
uses: ActionsTools/read-json-action@v1.0.5
with:
file_path: "pakku.json"
- name: 📊 Get Pakku-lock Info
id: pakku_lock_info
uses: ActionsTools/read-json-action@v1.0.5
with:
file_path: "pakku-lock.json"
- name: 📄 Changelog Parser
id: changelog
uses: coditory/changelog-parser@v1.0.2
with:
path: CHANGELOG.md
continue-on-error: true
- name: 🔍 Check if tag exists
uses: mukunku/tag-exists-action@v1.6.0
id: check_tag
with:
tag: ${{ steps.changelog.outputs.version }}
- name: 🔍 Check existing PRs
if: ${{ steps.check_tag.outputs.exists == 'false' }}
id: check_existing_pr
uses: actions/github-script@v7.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
script: |
const { data: prs } = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
head: `${context.repo.owner}:dev`,
base: 'main'
});
if (prs.length > 0) {
console.log(` Found existing PR from dev to main: ${prs[0].html_url}`);
core.setOutput('exists', 'true');
} else {
core.setOutput('exists', 'false');
}
- name: 🔍 Create Pull Request if tag not found
if: ${{ !steps.check_existing_pr.outputs.exists }}
uses: devops-infra/action-pull-request@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
source_branch: dev
target_branch: main
title: 'Release: ${{ steps.changelog.outputs.version }}'
body: |
**This is an automated Pull Request from the dev branch.**
📃 **Name**: ${{ steps.pakku_info.outputs.name }}
📃 **Release**: `${{ steps.changelog.outputs.version }}`
📃 **Release Type**: `${{ steps.pakku_info.outputs.release_type }}`