Skip to content
Snippets Groups Projects
Verified Commit f315def0 authored by Griefed's avatar Griefed :joystick:
Browse files

ci(GitHub): Correctly execute (pre)release actions when tags are pushed.

parent e46faafd
No related branches found
No related tags found
No related merge requests found
name: Create GitHub Pre-Release after GitLab tag mirror
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+-pre.[0-9]+'
jobs:
release:
runs-on: ubuntu-latest
steps:
# GET LATEST CODE
- name: Checkout latest code
uses: actions/checkout@master
with:
fetch-depth: 0
# EXTRACT TAG FROM PUSH
- name: Get tag
id: tag
uses: dawidd6/action-get-tag@v1
- name: Use tag
run: echo ${{steps.tag.outputs.tag}}
# GENERATE CHANGELOG, RELEASE
- id: conventional_changelog
uses: ardalanamini/auto-changelog@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ steps.tag.outputs.tag }}
body: |
Automatic release of version: **${{ steps.tag.outputs.tag }}**
**Changes in this release:**
${{ steps.conventional_changelog.outputs.changelog }}
draft: false
prerelease: true
# IF JAVA PROJECT
# # BUILD PROJECT AND PUBLISH TO PACKAGES
# - name: Set up JDK 8
# uses: actions/setup-java@v2
# with:
# distribution: 'adopt'
# java-version: '8'
# - name: Grant execute permission for gradlew
# run: chmod +x gradlew
# - name: Publish to GitHub Packages
# env:
# GITHUB_ACTOR: ${{ secrets.GITHUB_ACTOR }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# run: |
# NEW_VERSION=$(echo "${{ steps.tag.outputs.tag }}")
# echo "New version: ${NEW_VERSION}"
# echo "Github username: ${GITHUB_ACTOR}"
# ./gradlew about
# ./gradlew installQuasar cleanFrontend assembleFrontend copyDist build --info -x test
# - name: List files
# run: ls -ahl build/libs
#
# - name: Rename files
# run: |
# echo "**** Renaming files to please the eye ****"
# mv build/libs/REPOSITORY.jar build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}.jar
# mv build/libs/REPOSITORY-javadoc.jar build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}-javadoc.jar
# mv build/libs/REPOSITORY-sources.jar build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}-sources.jar
#
# - uses: actions/upload-artifact@v2
# with:
# name: build-artifacts-gradle
# path: |
# build/libs/
# if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
# - uses: actions/upload-artifact@v2
# if: failure()
# with:
# name: report
# path: build/reports/tests/test/
# if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
#
# # UPLOAD ASSETS TO RELEASE
# - name: Upload Release Asset Main Jar
# id: upload-release-asset
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}.jar
# asset_name: REPOSITORY-${{ steps.tag.outputs.tag }}.jar
# asset_content_type: application/jar
#
# - name: Upload Release Asset Sources Jar
# id: upload-release-asset-sources
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}-sources.jar
# asset_name: REPOSITORY-${{ steps.tag.outputs.tag }}-sources.jar
# asset_content_type: application/jar
#
# - name: Upload Release Asset Javadoc Jar
# id: upload-release-asset-javadoc
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./build/libs/REPOSITORY-${{ steps.tag.outputs.tag }}-javadoc.jar
# asset_name: REPOSITORY-${{ steps.tag.outputs.tag }}-javadoc.jar
# asset_content_type: application/jar
#
# # DOCKER RELATED
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v1
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v1
# - name: Login to DockerHub
# uses: docker/login-action@v1
# with:
# username: griefed
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v1
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Build and push
# uses: docker/build-push-action@v2
# with:
# context: .
# file: ./Dockerfile.gradle.quasar
# platforms: linux/amd64,linux/arm64
# push: true
# tags: |
# ghcr.io/griefed/REPOSITORY:latest
# ghcr.io/griefed/REPOSITORY:${{ steps.tag.outputs.tag }}
# griefed/REPOSITORY:latest
# griefed/REPOSITORY:${{ steps.tag.outputs.tag }}
# IF QUASAR PROJECT
# - name: Setup Node.js environment
# uses: actions/setup-node@v2.4.1
# with:
# # Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0
# node-version: '>= 16.9.1'
# # Set this option if you want the action to check for the latest available version that satisfies the version spec
# check-latest: false
#
# - name: Install Quasar
# run: npm install -g @quasar/cli
#
# - name: Install packages
# run: npm install
#
# - name: Build project for NGINX release package
# run: quasar build
#
# - name: List files
# run: pwd && ls -al *
#
# # NGINX Archives
# - name: Create NGINX Archive tar.gz
# run: |
# echo "**** Creating archive of quasar build ****"
# tar -cvzf REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.tar.gz dist/spa
# - name: Create NGINX Archive zip
# uses: papeloto/action-zip@v1
# with:
# files: dist/spa
# recursive: true
# dest: REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.zip
#
# - uses: actions/upload-artifact@v2
# with:
# name: build-artifacts
# path: dist/spa/ # frontend/dist/spa if Gradle Spring Boot project for example
# if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
#
# # Upload NGINX Assets
# - name: Upload Release Archive tar.gz
# id: upload-release-asset-archive-targz
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.tar.gz
# asset_name: REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.tar.gz
# asset_content_type: application/gzip
# - name: Upload Release Archive zip
# id: upload-release-asset-archive-zip
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ steps.create_release.outputs.upload_url }}
# asset_path: ./REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.zip
# asset_name: REPOSITORY-NGINX-${{ steps.tag.outputs.tag }}.zip
# asset_content_type: application/zip
#
# # DEPLOY TO GH-PAGES
# - name: Deploy to GitHub-Pages
# uses: JamesIves/github-pages-deploy-action@4.1.6
# with:
# branch: gh-pages
# folder: dist/spa
# # DOCKER RELATED
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v1
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v1
# - name: Login to DockerHub
# uses: docker/login-action@v1
# with:
# username: griefed
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v1
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# - name: Build and push
# uses: docker/build-push-action@v2
# with:
# context: .
# file: ./Dockerfile.gradle.quasar
# platforms: linux/amd64,linux/arm64
# push: true
# tags: |
# ghcr.io/griefed/REPOSITORY:latest
# ghcr.io/griefed/REPOSITORY:${{ steps.tag.outputs.tag }}
# griefed/REPOSITORY:latest
# griefed/REPOSITORY:${{ steps.tag.outputs.tag }}
# IF ELECTRON PROJECT
# electron:
# needs: release
# runs-on: ${{ matrix.os }}
#
# strategy:
# matrix:
# os: [macos-latest, ubuntu-latest, windows-latest]
#
# steps:
# # GET LATEST CODE
# - name: Checkout latest code
# uses: actions/checkout@master
# with:
# fetch-depth: 0
#
# # SETUP NODE ENVIRONMENT
# - name: Setup Node.js environment
# uses: actions/setup-node@v2.4.1
# with:
# # Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0
# node-version: '>= 16.9.1'
# # Set this option if you want the action to check for the latest available version that satisfies the version spec
# check-latest: false
#
# - name: Build/release Electron app
# uses: vedaprakashms/quasar_electron_build@V0.0.1
# with:
# # GitHub token, automatically provided to the action
# # (No need to define this secret in the repo settings)
# github_token: ${{ secrets.github_token }}
#
# - name: List files
# run: ls dist/electron
#
# - uses: actions/upload-artifact@v2
# with:
# name: electron-artifacts ${{ matrix.os }}
# path: |
# dist/electron/
# !dist/electron/UnPackaged
# if-no-files-found: warn # 'warn' or 'ignore' are also available, defaults to `warn`
#
# - name: Rename folders
# run: |
# mv dist/electron/REPOSITORY* REPOSITORY-${{ matrix.os }}
#
# # Electron Archives
# - name: Create zip
# uses: ihiroky/archive-action@v1
# with:
# root_dir: REPOSITORY-${{ matrix.os }}
# file_path: REPOSITORY-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.zip
# verbose: true
# - name: Create tar.gz
# run: |
# tar -cvzf REPOSITORY-app-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.tar.gz REPOSITORY-${{ matrix.os }}
#
# # Upload App Assets
# - name: Upload App Archive zip
# id: upload-release-asset-archive-zip
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.release.outputs.uploadurl }}
# asset_path: ./REPOSITORY-app-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.zip
# asset_name: REPOSITORY-app-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.zip
# asset_content_type: application/zip
# - name: Upload App Archive tar.gz
# id: upload-release-asset-archive-targz
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.release.outputs.uploadurl }}
# asset_path: ./REPOSITORY-app-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.tar.gz
# asset_name: REPOSITORY-app-${{ matrix.os }}-${{ needs.release.outputs.newtag }}.tar.gz
# asset_content_type: application/gzip
\ No newline at end of file
......@@ -3,7 +3,7 @@ name: Create GitHub Release after tag push
on:
push:
tags:
- '*'
- '[0-9]+.[0-9]+.[0-9]+'
jobs:
release:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment