56 lines
2.1 KiB
YAML
56 lines
2.1 KiB
YAML
name: 'Release'
|
|
|
|
on:
|
|
release:
|
|
types: [created]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Validate semver
|
|
env:
|
|
TAG: ${{ github.event.release.tag_name }}
|
|
run: |
|
|
echo $TAG | grep -oP '^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
|
|
echo "::set-env name=RELEASE::${TAG:1}"
|
|
- name: Export keystore
|
|
env:
|
|
KEY_STORE: ${{ secrets.KEY_STORE }}
|
|
run: |
|
|
echo $KEY_STORE | base64 -d > $HOME/keystore.jks
|
|
echo "::set-env name=KEY_STORE_FILE::$HOME/keystore.jks"
|
|
- uses: actions/checkout@v2
|
|
- name: Set up JDK 1.8
|
|
uses: actions/setup-java@v1
|
|
with:
|
|
java-version: 1.8
|
|
- name: Grant execute permission for gradlew
|
|
run: chmod +x gradlew
|
|
- name: Generate assets
|
|
uses: GabrielBB/xvfb-action@v1.2
|
|
with:
|
|
run: ./gradlew runData --no-daemon
|
|
- name: Build, sign, and publish with Gradle
|
|
env:
|
|
KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }}
|
|
KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }}
|
|
KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: ./gradlew build publish --no-daemon
|
|
- name: Prepare artifact metadata
|
|
id: prepare_artifact_metadata
|
|
run: |
|
|
echo ::set-output name=ARTIFACT_PATH::./build/libs/appliedenergistics2-${RELEASE}.jar
|
|
echo ::set-output name=ARTIFACT_NAME::appliedenergistics2-${RELEASE}.jar
|
|
- name: Upload Release Artifact
|
|
uses: actions/upload-release-asset@v1.0.1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ github.event.release.upload_url }}
|
|
asset_path: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_PATH }}
|
|
asset_name: ${{ steps.prepare_artifact_metadata.outputs.ARTIFACT_NAME }}
|
|
asset_content_type: application/zip
|