Skip to content

Commit

Permalink
Release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
alansemenov committed Apr 12, 2024
1 parent 00351dc commit b0d142d
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 26 deletions.
26 changes: 0 additions & 26 deletions .github/workflows/enonic-gradle.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Gradle Build

on:
push:

concurrency: build-${{ github.ref }}

jobs:
publish_vars:
runs-on: ubuntu-latest

outputs:
publish: ${{ steps.publish_vars.outputs.release != 'true' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/2.')) }}
repo: ${{ steps.publish_vars.outputs.repo }}

steps:

- uses: actions/checkout@v4

- name: Get publishing variables
id: publish_vars
uses: enonic/release-tools/publish-vars@master
env:
PROPERTIES_PATH: './gradle.properties'

build:
runs-on: ubuntu-latest

needs: publish_vars

steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11

- name: Setup Gradle
uses: gradle/gradle-build-action@v2

- name: Build with Gradle
run: ./gradlew build

- name: Publish
if: needs.publish_vars.outputs.publish == 'true'
run: ./gradlew publish -Pcom.enonic.xp.app.production=true -PrepoKey=${{ needs.publish_vars.outputs.repo }} -PrepoUser=${{ secrets.ARTIFACTORY_USERNAME }} -PrepoPassword=${{ secrets.ARTIFACTORY_PASSWORD }}
85 changes: 85 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Release

on:
push:
tags:
- 'v*'

concurrency: release

jobs:

release_notes:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get previous release tag
id: get_previous_release_tag
run: |
PREVIOUS_RELEASE_TAG=$(git tag --sort=-version:refname --merged | grep -E '^v([[:digit:]]+\.){2}[[:digit:]]+$' | grep -v "$(git describe --tags)" | head -1)
echo "previous_release_tag=$PREVIOUS_RELEASE_TAG" >> $GITHUB_OUTPUT
- name: Generate Release Notes
uses: enonic/release-tools/generate-changelog@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PREVIOS_RELEASE_TAG: ${{ steps.get_previous_release_tag.outputs.previous_release_tag }}
OUTPUT_FILE: changelog.md

- uses: actions/upload-artifact@v3
with:
name: changelog
path: changelog.md

build:
runs-on: ubuntu-latest

needs: release_notes

steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 11

- uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'

- name: Set up Gradle
uses: gradle/gradle-build-action@v2

- name: Get publishing variables
id: publish_vars
uses: enonic/release-tools/publish-vars@master
env:
PROPERTIES_PATH: './gradle.properties'

- name: Verify release version
if: steps.publish_vars.outputs.release != 'true'
run: exit 1

- name: Publish to Artifactory
run: ./gradlew publish -Pcom.enonic.xp.app.production=true -PrepoKey=${{ steps.publish_vars.outputs.repo }} -PrepoUser=${{ secrets.ARTIFACTORY_USERNAME }} -PrepoPassword=${{ secrets.ARTIFACTORY_PASSWORD }}

- name: Download changelog
uses: actions/download-artifact@v3
with:
name: changelog

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.publish_vars.outputs.tag_name }}
body_path: changelog.md
release_name: ${{ steps.publish_vars.outputs.version }}
prerelease: ${{ steps.publish_vars.outputs.prerelease == 'true' }}

0 comments on commit b0d142d

Please sign in to comment.