Skip to content

🔖 [RELEASE] Modules: components, release #37

🔖 [RELEASE] Modules: components, release

🔖 [RELEASE] Modules: components, release #37

Workflow file for this run

name: 'Release'
on:
push:
branches: [ rewrite ]
pull_request:
branches: [ rewrite ]
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
jobs:
# Only if last commit contains [RELEASE]
check:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Get Last Commit
run: |
$tmp = git show --pretty=format:"%s" -s HEAD
Write-Output "::set-env name=CommitMessage::$tmp"
shell: pwsh
- name: Check Last Commit
id: check_commit
run: |
if ($env:CommitMessage -match '\[RELEASE\]') {
echo "::set-output name=executable::true"
} else {
echo "::set-output name=executable::false"
}
shell: pwsh
- name: Extract Modules from Commit Message
id: extract_modules
run: |
if ($env:CommitMessage -match '\[RELEASE\] Modules: (.*)') {
$modules = $matches[1] -split ', '
echo "::set-output name=modules::$($modules -join ',')"
} else {
echo "::set-output name=modules::"
}
shell: pwsh
outputs:
executable: ${{ steps.check_commit.outputs.executable }}
modules: ${{ steps.extract_modules.outputs.modules }}
release:
environment: MavenEnv
runs-on: windows-latest
needs: check
if: ${{ needs.check.outputs.executable == 'true' }}
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.GPG_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_KEY }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '21'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build -x test -x processCSS
- name: Release modules
run: |
# Iterate over modules
$modules = "${{ needs.check.outputs.modules }}" -split ','
foreach ($module in $modules) {
echo "Releasing module: $module"
switch ($module) {
"core" { ./gradlew core:publish core:releaseRepository }
"resources" { ./gradlew resources:publish resources:releaseRepository }
"effects" { ./gradlew effects:publish effects:releaseRepository }
"localization" { ./gradlew localization:publish localization:releaseRepository }
"components" { ./gradlew components:publish components:releaseRepository }
"release" { ./gradlew release:publish release:releaseRepository }
default { Write-Host "Unrecognized module" }
}
}
shell: pwsh