Skip to content

Commit

Permalink
Merge pull request #319 from dhis2/create-start-release-job
Browse files Browse the repository at this point in the history
Create start release job in develop
  • Loading branch information
xavimolloy authored Oct 23, 2024

Unverified

The committer email address is not verified.
2 parents 64db5b1 + fad86d7 commit b16046d
Showing 3 changed files with 110 additions and 5 deletions.
7 changes: 2 additions & 5 deletions .github/workflows/continuous-deployment.yml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ on:
push:
branches:
- develop # Automatically generates snapshot versions

- release/* # Automatically generates release versions
workflow_dispatch: ## manually generates release versions
inputs:
release_version:
@@ -20,22 +20,19 @@ jobs:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3

- name: Set Up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu' # See 'Supported distributions' for available options
distribution: 'zulu'
java-version: '17'
cache: 'gradle'

- name: Change wrapper permissions
run: chmod +x ./gradlew

# Create publish to maven
- name: Publish to maven
run: ./.github/workflows/scripts/publish-maven.sh
env:
87 changes: 87 additions & 0 deletions .github/workflows/release-start.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Release start

# Controls when the action will run. Workflow runs when manually triggered using the UI
# or API.
on:
workflow_dispatch:
# Inputs the workflow accepts.
inputs:
release_version_name:
description: 'New release version name'
required: true
type: string

development_version_name:
description: 'Development version name'
required: true
type: string

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
create_branch:

runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12.1

- name: setup git config
run: |
# setup the username and email.
git config user.name "GitHub Actions Bot"
git config user.email "<[email protected]>"
# override version with new version
- name: Create release branch
run: git checkout -b release/${{ inputs.release_version_name }}

- name: Run Python script to update release branch version
run: python scripts/updateVersionName.py ${{ inputs.release_version_name }}

- name: Push
run: |
git add .
git commit -m "Update version to ${{ inputs.release_version_name }}"
git push origin release/${{ inputs.release_version_name }}
update_version:

runs-on: ubuntu-latest

steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12.1

- name: setup git config
run: |
# setup the username and email.
git config user.name "GitHub Actions Bot"
git config user.email "<[email protected]>"
- name: Create release branch
run: git checkout -b update_version_to${{ inputs.development_version_name }}

- name: Run Python script to update base branch version
run: python scripts/updateVersionName.py ${{ inputs.development_version_name }}

- name: Commit and Push Changes
run: |
git add .
git commit -m "Update version to ${{ inputs.development_version_name }}"
git push origin update_version_to${{ inputs.development_version_name }}
- name: create pull request
run: gh pr create -B develop -H update_version_to${{ inputs.development_version_name }} --title 'Merge update_version_to${{ inputs.development_version_name }} into develop' --body 'Created by Github action'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21 changes: 21 additions & 0 deletions .github/workflows/scripts/updateVersionName.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import sys
import re

def update_version_in_gradle(file_path, new_version):
with open(file_path, 'r') as file:
content = file.read()

# Use regex to find and replace the version value
updated_content = re.sub(r'version\s*=\s*"[0-9.]+-SNAPSHOT"', f'version = "{new_version}"', content)

with open(file_path, 'w') as file:
file.write(updated_content)

print("File updated successfully!")

if len(sys.argv) > 1:
new_version = sys.argv[1]
file_path = 'build.gradle.kts'
update_version_in_gradle(file_path, new_version)
else:
print("No new version provided. To update the version, pass the new version as a command-line argument.")

0 comments on commit b16046d

Please sign in to comment.