Skip to content

Full Package with PlugY and D2DX #8

Full Package with PlugY and D2DX

Full Package with PlugY and D2DX #8

Workflow file for this run

name: Full Package with PlugY and D2DX
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Get release info
id: rel
run: |
if [ "${{ github.event_name }}" = "release" ]; then
echo "mode=published" >> $GITHUB_OUTPUT
echo "tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
echo "upload_url=${{ github.event.release.upload_url }}" >> $GITHUB_OUTPUT
else
echo "mode=manual" >> $GITHUB_OUTPUT
LATEST_TAG=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r '.tag_name')
UPLOAD_URL=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r '.upload_url')
echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT
echo "upload_url=$UPLOAD_URL" >> $GITHUB_OUTPUT
fi
echo "Mode: ${{ steps.rel.outputs.mode }}"
echo "Tag: ${{ steps.rel.outputs.tag }}"
echo "Upload URL: ${{ steps.rel.outputs.upload_url }}"
- name: Extract d2mods source
run: |
SRC_URL="https://github.com/${{ github.repository }}/archive/refs/tags/${{ steps.rel.outputs.tag }}.zip"
echo "Downloading source: $SRC_URL"
curl -L "$SRC_URL" -o source.zip
unzip -o source.zip -d package
- name: Download PlugY
run: |
PLUGY_URL=$(curl -s https://api.github.com/repos/ChaosMarc/PlugY/releases/latest \
| grep browser_download_url \
| grep 'PlugY_The_Survival_Kit_v' \
| grep -v 'source' \
| grep -v 'D2FilePatcher' \
| head -n 1 \
| sed -E 's/.*"(https[^"]+)".*/\1/')
echo "PlugY URL: $PLUGY_URL"
curl -L "$PLUGY_URL" -o plugy.zip
unzip -o plugy.zip -d package 2>/dev/null || true
- name: Modify PlugY.ini
run: |
INI=package/PlugY.ini
sed -i '/^\[LAUNCHING\]/,/^\[/{s/^Param=.*/Param=-gfx -w -direct -txt/}' "$INI"
sed -i '/^\[MAIN SCREEN\]/,/^\[/{s/^ActivePrintPlugYVersion=.*/ActivePrintPlugYVersion=0/}' "$INI"
- name: Download D2DX
run: |
D2DX_URL=$(curl -s https://api.github.com/repos/Jarcho/d2dx/releases/latest \
| grep browser_download_url \
| grep external-res \
| grep -o 'https.*d2dx-.*external-res\.zip')
echo "d2dx URL: $D2DX_URL"
curl -L "$D2DX_URL" -o d2dx.zip
unzip d2dx.zip -d package
- name: Create d2dx.cfg
run: |
cp package/d2dx-defaults.cfg package/d2dx.cfg
sed -i '/^\[window\]/,/^\[/{s/^scale=1.0/scale=2.0/}' package/d2dx.cfg
sed -i '/^\[optouts\]/,/^\[/{s/^nologo=false/nologo=true/}' package/d2dx.cfg
- name: Create SGD2FreeResolution.json
run: |
printf '%s\n' \
'{' \
' "SlashGaming Diablo II Free Resolution": {' \
' "!!!Metadata (Do not modify)!!!": {' \
' "Major Version A": 3,' \
' "Major Version B": 0,' \
' "Minor Version A": 1,' \
' "Minor Version B": 0' \
' },' \
' "Ingame Resolutions": [' \
' "640x480",' \
' "800x600",' \
' "960x720",' \
' "1440x1080"' \
' ],' \
' "Ingame Resolution Mode": 2,' \
' "Main Menu Resolution": "800x600",' \
' "Custom MPQ File": "SGD2FreeRes.mpq",' \
' "Enable Screen Border Frame?": true,' \
' "Use Original Screen Border Frame?": false,' \
' "Use 800 Interface Bar?": true' \
' },' \
' "!!!Globals!!!": {' \
' "Config Tab Width": 4' \
' }' \
'}' \
> package/SGD2FreeResolution.json
- name: Create Mod Package
run: |
cd package
zip -r ../d2mods-full.zip .
- name: Upload Mod Package
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "Uploading asset to release: ${{ steps.rel.outputs.tag }}"
gh release upload "${{ steps.rel.outputs.tag }}" d2mods-full.zip --clobber