Skip to content
Snippets Groups Projects
github_release.yml 3.4 KiB
Newer Older
name: Create GitHub Release after GitLab tag mirror

on:
  push:
    tags:
      - '*'

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: false

      # 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
Griefed's avatar
Griefed committed
          ./gradlew -Pversion=${NEW_VERSION} publish --info -x test
      - name: List files
        run: ls -ahl build/libs

      # 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/serverpackcreatorexampleaddon-${{steps.tag.outputs.tag}}.jar
          asset_name: serverpackcreatorexampleaddon-${{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/serverpackcreatorexampleaddon-${{steps.tag.outputs.tag}}-sources.jar
          asset_name: serverpackcreatorexampleaddon-${{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/serverpackcreatorexampleaddon-${{steps.tag.outputs.tag}}-javadoc.jar
          asset_name: serverpackcreatorexampleaddon-${{steps.tag.outputs.tag}}-javadoc.jar
          asset_content_type: application/jar