mirror of https://github.com/abpframework/abp.git
3 changed files with 131 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||
import os |
|||
import json |
|||
from github import Github |
|||
|
|||
def update_latest_versions(): |
|||
version = os.environ["GITHUB_REF"].split("/")[-1] |
|||
|
|||
if "rc" in version: |
|||
return False |
|||
|
|||
with open("latest-versions.json", "r") as f: |
|||
latest_versions = json.load(f) |
|||
|
|||
latest_versions[0]["version"] = version |
|||
|
|||
with open("latest-versions.json", "w") as f: |
|||
json.dump(latest_versions, f, indent=2) |
|||
|
|||
return True |
|||
|
|||
def create_pr(): |
|||
g = Github(os.environ["GITHUB_TOKEN"]) |
|||
repo = g.get_repo("abpframework/abp") |
|||
|
|||
branch_name = f"update-latest-versions-{os.environ['GITHUB_REF'].split('/')[-1]}" |
|||
base = repo.get_branch("dev") |
|||
repo.create_git_ref(ref=f"refs/heads/{branch_name}", sha=base.commit.sha) |
|||
|
|||
# Get the current latest-versions.json file and its sha |
|||
contents = repo.get_contents("latest-versions.json", ref="dev") |
|||
file_sha = contents.sha |
|||
|
|||
# Update the file in the repo |
|||
repo.update_file( |
|||
path="latest-versions.json", |
|||
message=f"Update latest-versions.json to version {os.environ['GITHUB_REF'].split('/')[-1]}", |
|||
content=open("latest-versions.json", "r").read().encode("utf-8"), |
|||
sha=file_sha, |
|||
branch=branch_name, |
|||
) |
|||
|
|||
try: |
|||
pr = repo.create_pull(title="Update latest-versions.json", |
|||
body="Automated PR to update the latest-versions.json file.", |
|||
head=branch_name, base="dev") |
|||
except Exception as e: |
|||
print(f"Error while creating PR: {e}") |
|||
|
|||
pr.create_review_request(reviewers=["ebicoglu", "gizemmutukurt", "skoc10"]) |
|||
|
|||
if __name__ == "__main__": |
|||
should_create_pr = update_latest_versions() |
|||
if should_create_pr: |
|||
create_pr() |
|||
@ -0,0 +1,44 @@ |
|||
name: Create Release |
|||
|
|||
on: |
|||
workflow_dispatch: |
|||
inputs: |
|||
tag_name: |
|||
description: 'Tag Name' |
|||
required: true |
|||
prerelease: |
|||
description: 'Pre-release?' |
|||
required: true |
|||
branchName: |
|||
description: 'Branch Name' |
|||
required: true |
|||
|
|||
jobs: |
|||
build: |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- name: Checkout code |
|||
uses: actions/checkout@v2 |
|||
with: |
|||
ref: ${{ github.event.inputs.branchName }} |
|||
|
|||
- name: Create Release |
|||
id: create_release |
|||
uses: actions/create-release@v1 |
|||
env: |
|||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
|||
with: |
|||
tag_name: ${{ github.event.inputs.tag_name }} |
|||
release_name: ${{ github.event.inputs.tag_name }} |
|||
draft: false |
|||
prerelease: ${{ github.event.inputs.prerelease }} |
|||
|
|||
- name: Checkout code at tag |
|||
uses: actions/checkout@v2 |
|||
with: |
|||
ref: ${{ github.event.inputs.tag_name }} |
|||
|
|||
- name: Build Project |
|||
run: | |
|||
# add your build commands here, depending on your project's requirements. |
|||
echo "Build project here" |
|||
@ -0,0 +1,33 @@ |
|||
name: Update Latest Versions |
|||
|
|||
on: |
|||
release: |
|||
types: |
|||
- published |
|||
|
|||
permissions: |
|||
contents: write |
|||
pull-requests: write |
|||
|
|||
jobs: |
|||
update-versions: |
|||
runs-on: ubuntu-latest |
|||
steps: |
|||
- name: Checkout repository |
|||
uses: actions/checkout@v2 |
|||
|
|||
- name: Set up Python |
|||
uses: actions/setup-python@v2 |
|||
with: |
|||
python-version: 3.x |
|||
|
|||
- name: Install dependencies |
|||
run: | |
|||
python -m pip install --upgrade pip |
|||
pip install PyGithub |
|||
|
|||
- name: Update latest-versions.json and create PR |
|||
env: |
|||
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} |
|||
run: | |
|||
python .github/scripts/update_versions.py |
|||
Loading…
Reference in new issue