From dad00d2d9c86981e0c24c9fb7af72985b1403412 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 26 Nov 2020 11:05:45 -0500 Subject: [PATCH] build: Add action to build and automatically release files (#170) Auto-release is gonna get a nice live test at a later date. --- .github/workflows/ci.yml | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6489274 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,93 @@ +name: OpenInv CI + +on: + push: + create: + types: [tag] + pull_request_target: + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: true + steps: + - name: Checkout Code + uses: actions/checkout@v2 + + - name: Set Up Java + uses: actions/setup-java@v1 + with: + java-version: 1.8 + + # Use cache to speed up build + - name: Cache Maven Repo + uses: actions/cache@v2 + id: cache + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + + # If the cache was not present, run BuildTools to install the relevant versions to Maven. + # This will take approximately forever. + - name: Install Spigot Dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: | + mkdir ~/buildtools + cd ~/buildtools + wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar + java -jar BuildTools.jar --rev 1.8.8 + java -jar BuildTools.jar --rev 1.15.2 + java -jar BuildTools.jar --rev 1.16.3 + java -jar BuildTools.jar --rev 1.16.4 + + - name: Build With Maven + run: mvn -e clean package -am -P all + + # Upload artifacts + - name: Upload Distributable Jar + id: upload-final + uses: actions/upload-artifact@v2 + with: + name: dist + path: ./target/OpenInv.jar + - name: Upload API Jar + id: upload-api + uses: actions/upload-artifact@v2 + with: + name: api + path: ./api/target/openinvapi*.jar + + release: + name: Create Github Release + needs: [ build ] + if: github.event_name == 'create' && github.event.ref_type == 'tag' + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v2 + + - name: Download Artifacts + uses: actions/download-artifact@v2 + + - name: Create Release + id: create-release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: true + prerelease: false + + - name: Upload Release Asset + id: upload-release-asset + uses: actions/upload-release-asset@v1.0.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create-release.outputs.upload_url }} + asset_path: ./OpenInv.jar + asset_name: OpenInv.jar + asset_content_type: application/java-archive \ No newline at end of file