Skip to content

Prepared for release: v1.7.1 #109

Prepared for release: v1.7.1

Prepared for release: v1.7.1 #109

Workflow file for this run

name: Releases
on:
push:
tags:
- 'v*'
jobs:
windows:
runs-on: windows-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Gradle caching
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Package Windows ".msi" distribution
run: ./gradlew :desktop:packageReleaseMsi
- name: Rename Artifact
shell: cmd
run: |
setlocal enabledelayedexpansion
set "pattern=hammer-*.msi"
set "newName=hammer.msi"
set "foundFile="
for /r %%i in (%pattern%) do (
set "foundFile=%%i"
)
if defined foundFile (
echo Renaming !foundFile! to %newName%
ren "!foundFile!" "%newName%"
) else (
echo No file matching pattern found.
)
endlocal
echo Successfully renamed file to "hammer.msi"
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
artifactErrorsFailBuild: true
allowUpdates: true
artifacts: "D:\\a\\hammer-editor\\hammer-editor\\desktop\\build\\installers\\main-release\\msi\\hammer.msi"
linux:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Gradle caching
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Package Linux ".deb" distribution
run: ./gradlew :desktop:packageReleaseDeb
- name: Rename Artifact
run: |
cd /home/runner/work/hammer-editor/hammer-editor/desktop/build/installers/main-release/deb/
# find the file matching the pattern and store its name in a variable
file=$(find . -type f -name 'hammer_*.deb' -print -quit)
# if no file was found, exit with an error message
if [ -z "$file" ]; then
echo "Error: no file matching the pattern found."
exit 1
fi
# rename the file to "hammer.deb"
mv "$file" "${file/hammer_*/hammer}.deb"
echo "File renamed successfully."
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
artifactErrorsFailBuild: true
allowUpdates: true
artifacts: "/home/runner/work/hammer-editor/hammer-editor/desktop/build/installers/main-release/deb/hammer.deb"
macos:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Gradle caching
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Package MacOS ".dmg" distribution
run: ./gradlew :desktop:packageReleaseDmg
- name: Rename Artifact
run: |
cd /Users/runner/work/hammer-editor/hammer-editor/desktop/build/installers/main-release/dmg/
# find the file matching the pattern and store its name in a variable
file=$(find . -type f -name 'hammer-*.dmg' -print -quit)
# if no file was found, exit with an error message
if [ -z "$file" ]; then
echo "Error: no file matching the pattern found."
exit 1
fi
# rename the file to "hammer.dmg"
mv "$file" "${file/hammer-*/hammer}.dmg"
echo "File renamed successfully."
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
artifactErrorsFailBuild: true
allowUpdates: true
artifacts: "/Users/runner/work/hammer-editor/hammer-editor/desktop/build/installers/main-release/dmg/hammer.dmg"
server:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Gradle caching
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Package Server distributions
run: ./gradlew :server:assembleDist
- name: Rename tar Artifact
run: |
file=$(find . -type f -name 'server-*.tar' -print -quit)
if [ -z "$file" ]; then
echo "Error: no file matching the pattern found."
exit 1
fi
mv "$file" "${file/server-*/server}.tar"
echo "File renamed successfully."
- name: Rename zip Artifact
run: |
file=$(find . -type f -name 'server-*.zip' -print -quit)
if [ -z "$file" ]; then
echo "Error: no file matching the pattern found."
exit 1
fi
mv "$file" "${file/server-*/server}.zip"
echo "File renamed successfully."
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
artifactErrorsFailBuild: true
allowUpdates: true
artifacts: "/home/runner/work/hammer-editor/hammer-editor/server/build/distributions/*.*"
android:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Gradle caching
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Restore key
working-directory: /home/runner/work/hammer-editor/hammer-editor/
run: |
echo "${{ secrets.RELEASE_KEYSTORE }}" > release.keystore.asc
echo ${{ secrets.RELEASE_STORE_PASSWORD_BASE64 }} | base64 -d > passphrase
gpg -d --passphrase-file passphrase --batch release.keystore.asc > release.keystore
- name: Build APK
env:
RELEASE_STORE_FILE: /home/runner/work/hammer-editor/hammer-editor/release.keystore
RELEASE_STORE_PASSWORD: ${{ secrets.RELEASE_STORE_PASSWORD }}
RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }}
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
run: |
./gradlew :android:assembleRelease
- name: Create Release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
artifactErrorsFailBuild: true
allowUpdates: true
artifacts: "/home/runner/work/hammer-editor/hammer-editor/android/build/outputs/apk/release/*.apk"
set-release-body:
runs-on: ubuntu-latest
needs: [ windows, linux, macos, android, server ]
if: success()
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Get last tag message
run: |
TAG_NAME=${GITHUB_REF#refs/tags/}
TAG_MESSAGE=$(git tag -n90 --format='%(contents)' "$TAG_NAME" )
echo "Tag: $TAG_NAME"
echo -e "Tag message:\n$TAG_MESSAGE"
echo "tag_message<<EOF" >> $GITHUB_ENV
echo "$TAG_MESSAGE" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Set release body
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
prerelease: true
allowUpdates: true
body: ${{ env.tag_message }}