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