Merge pull request #50 from MoSadie/stream-deck-nodejs #176
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Controls when the action will run. | |
on: [push, workflow_dispatch] | |
jobs: | |
buildCore: | |
name: Build Core | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Setup JDK | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: adopt | |
java-version: 8 | |
- name: Set up Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
# Build Core | |
- name: Build/Install Core | |
working-directory: ./MinecraftMod/core | |
run: './gradlew publishToMavenLocal' | |
# Upload Maven Local | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
path: ~/.m2/repository | |
name: maven | |
buildJava8: | |
name: Build ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
runs-on: ubuntu-latest | |
needs: buildCore | |
# Matrix of jobs to run | |
strategy: | |
fail-fast: false | |
matrix: | |
mod-loader: ['forge', 'fabric'] | |
mc-version: ['1.16.4'] | |
#exclude: | |
# - mod-loader: 'forge' | |
# mc-version: '1.17' | |
steps: | |
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it | |
- uses: actions/checkout@v4 | |
# Setup JDK | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: adopt | |
java-version: 8 | |
- name: Set up Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
# Download Core | |
- name: Download Core Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: maven | |
path: ~/.m2/repository | |
# Build Core | |
# - name: Build/Install Core | |
# working-directory: ./MinecraftMod/core | |
# run: './gradlew publishToMavenLocal' | |
# Build Minecraft Mod | |
- name: Build Mod | |
working-directory: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }} | |
run: './gradlew build --no-daemon' | |
# Upload Artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
path: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }}/build/libs/*.jar | |
buildJava17: | |
name: Build ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
runs-on: ubuntu-latest | |
needs: buildCore | |
# Matrix of jobs to run | |
strategy: | |
fail-fast: false | |
matrix: | |
mod-loader: ['fabric', 'forge'] | |
mc-version: ['1.17.1', '1.18.2', '1.19.4'] | |
#exclude: | |
# - mod-loader: 'forge' | |
# mc-version: '1.17' | |
steps: | |
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it | |
- uses: actions/checkout@v4 | |
# # Setup JDK | |
# - name: Set up JDK 1.8 | |
# uses: actions/setup-java@v2 | |
# with: | |
# distribution: 'adopt' | |
# java-version: 8 | |
# # Build Core | |
# - name: Build/Install Core | |
# working-directory: ./MinecraftMod/core | |
# run: './gradlew publishToMavenLocal' | |
# Setup JDK | |
- name: Set up JDK 1.17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: 17 | |
- name: Set up Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
# Download Core | |
- name: Download Core Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: maven | |
path: ~/.m2/repository | |
# Build Minecraft Mod | |
- name: Build Mod | |
working-directory: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }} | |
run: './gradlew build --no-daemon' | |
# Upload Artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
path: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }}/build/libs/*.jar | |
buildJava21: | |
name: Build ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
runs-on: ubuntu-latest | |
needs: buildCore | |
# Matrix of jobs to run | |
strategy: | |
fail-fast: false | |
matrix: | |
mod-loader: ['fabric', 'forge'] | |
mc-version: ["1.20.6", "1.21"] | |
#exclude: | |
# - mod-loader: 'forge' | |
# mc-version: '1.17' | |
steps: | |
# Checks-out the repository under $GITHUB_WORKSPACE, so the job can access it | |
- uses: actions/checkout@v4 | |
# Setup JDK | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: 21 | |
- name: Set up Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
# Download Core | |
- name: Download Core Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: maven | |
path: ~/.m2/repository | |
# Build Minecraft Mod | |
- name: Build Mod | |
working-directory: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }} | |
run: './gradlew build --no-daemon' | |
# Upload Artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.mod-loader }} ${{ matrix.mc-version }} | |
path: ./MinecraftMod/${{ matrix.mod-loader }}/${{ matrix.mc-version }}/build/libs/*.jar | |
buildPlugin: | |
name: Build Stream Deck Plugin | |
runs-on: ubuntu-latest | |
needs: buildCore | |
steps: | |
- uses: actions/checkout@v4 | |
# Setup JDK | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: adopt | |
java-version: 8 | |
- name: Set up Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'npm' | |
cache-dependency-path: ./effectmc/package-lock.json | |
- name: Install Stream Deck CLI | |
run: 'npm install -g @elgato/cli' | |
# Build Core | |
- name: Create effects.json | |
working-directory: ./MinecraftMod/core | |
run: './gradlew run' | |
# Copy effects.json | |
- name: Copy effects.json | |
run: 'cp ./MinecraftMod/core/effects.json ./effectmc/effects.json' | |
# Install modules | |
- name: Install Modules | |
working-directory: ./effectmc | |
run: 'npm install' | |
# Generate Stream Deck Plugin | |
- name: Generate Stream Deck Plugin | |
working-directory: ./effectmc | |
run: 'npm run generate' | |
- name: Build Stream Deck Plugin | |
working-directory: ./effectmc | |
run: 'npm run build' | |
- name: Package Stream Deck Plugin | |
working-directory: ./effectmc | |
run: 'streamdeck pack com.mosadie.effectmc.sdPlugin' | |
# Upload Artifact | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Stream Deck Plugin | |
path: ./effectmc/*.streamDeckPlugin |