mirror of https://github.com/abpframework/abp.git
committed by
GitHub
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