Files
PlazmaBukkitMC/.github/workflows/build.yml
2023-03-07 00:01:53 +09:00

105 lines
3.0 KiB
YAML

name: Build Plazma
on:
push:
branches: [ "ver/*", "feat/*", "dev/*", "expr/*" ]
workflow_dispatch:
env:
ORG_NAME: PlazmaMC
MC_VERSION: 1.19.3
MAIN_BRANCH: ver/1.19.3
DEBUG: 'false'
jobs:
release:
strategy:
matrix:
jdk: [19.0.1]
java: ['temurin']
os: [ubuntu-20.04]
if: "!startsWith(github.event.commits[0].message, '[CI-Skip]')"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout action
uses: actions/checkout@v3
- name: Checkout pages
uses: actions/checkout@v3
with:
path: javadoc
ref: gh-pages
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Set up JDK ${{ matrix.java }} ${{ matrix.jdk }}
uses: actions/setup-java@v3
with:
distribution: ${{ matrix.java }}
java-version: ${{ matrix.jdk }}
cache: 'gradle'
- name: Configure Git
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && git config --global user.name "github-actions[bot]"
echo "workflow=$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
- name: Apply Patches
run: ./gradlew applyPatches --stacktrace
- name: Build
run: ./gradlew build --stacktrace
- name: Create Reobf Jar
run: ./gradlew createReobfPaperclipJar --stacktrace
- name: Create Mojmap Jar
run: ./gradlew createMojmapPaperclipJar --stacktrace
- name: Update Javadoc
continue-on-error: true
if: github.ref_name == env.MAIN_BRANCH
run: |
(cd Plazma-API/build/docs/javadoc && tar c .) | (cd javadoc && tar xf -)
cd javadoc
git add . && git commit -m "Update Javadocs"
git push
- name: Publish Packages
if: github.ref_name == env.MAIN_BRANCH
run: |
export GITHUB_USERNAME=${{ env.ORG_NAME }}
export GITHUB_TOKEN=${{ secrets.GH_PAT }}
./gradlew publish --stacktrace
- name: Upload Artifacts
if: env.DEBUG == 'true' || github.ref_name != env.MAIN_BRANCH
uses: actions/upload-artifact@v3
with:
name: Artifacts
path: |
build/libs
Plazma-API/build/docs/javadoc
- name: Release Artifacts
if: github.ref_name == env.MAIN_BRANCH
uses: marvinpinto/action-automatic-releases@latest
with:
title: "Release #${{ env.workflow }}"
automatic_release_tag: release-${{ env.workflow }}
repo_token: "${{ secrets.GH_PAT }}"
files: build/libs/*.jar
prerelease: false
- name: Release Artifacts (Latest)
if: github.ref_name == env.MAIN_BRANCH
uses: marvinpinto/action-automatic-releases@latest
with:
title: "Release #${{ env.workflow }}"
automatic_release_tag: latest-${{ env.MC_VERSION }}
repo_token: "${{ secrets.GH_PAT }}"
files: build/libs/*.jar
prerelease: false