Files

72 lines
2.1 KiB
YAML

name: Build Mod
on:
push:
branches: [ "main", "master" ]
pull_request:
branches: [ "main", "master" ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Mod Repository
uses: actions/checkout@v4
with:
path: 'mod-source'
- name: Checkout Ghostship Repository
uses: actions/checkout@v4
with:
repository: 'HarbourMasters/Ghostship'
ref: 'develop'
submodules: 'recursive'
path: 'Ghostship'
- name: Prepare Workspace
run: |
mkdir -p Ghostship/workspace
mv mod-source Ghostship/workspace
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3 python3-pip cmake
python3 -m pip install Pillow cryptography --break-system-packages
- name: Configure CMake
run: |
cd Ghostship/workspace/mod-source
cmake -B build -S .
- name: Read Project Name
id: meta
run: |
PROJECT_NAME=$(grep "^CMAKE_PROJECT_NAME:" Ghostship/workspace/mod-source/build/CMakeCache.txt | sed 's/.*=//')
echo "project_name=$PROJECT_NAME" >> $GITHUB_OUTPUT
- name: Build Mod
run: |
cd Ghostship/workspace/mod-source
cmake --build build -j$(nproc)
- name: Sign Mod
run: |
cd Ghostship/workspace/mod-source/output
zip -r ../${{ steps.meta.outputs.project_name }}.zip .
cd ..
# echo "${{ secrets.SIGN_PRIVATE_KEY }}" > private_key.pem
# python3 ../../libultraship/tools/sign.py ${{ steps.meta.outputs.project_name }}.zip private_key.pem
# rm private_key.pem
unzip ${{ steps.meta.outputs.project_name }}.zip -d signed-output
rm ${{ steps.meta.outputs.project_name }}.zip
- name: Upload Mod Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.meta.outputs.project_name }}
path: Ghostship/workspace/mod-source/signed-output/
retention-days: 7