Skip to content

Add my new achievement groups plugin and update steamdb and augmented steam #28

Add my new achievement groups plugin and update steamdb and augmented steam

Add my new achievement groups plugin and update steamdb and augmented steam #28

Workflow file for this run

name: Test Build
on:
pull_request:
types:
- opened
- synchronize
- reopened
workflow_dispatch:
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
submodule-matrix: ${{ steps.discover-submodules.outputs.submodule-matrix }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
persist-credentials: false
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install pnpm
run: npm install -g pnpm
- name: Discover submodules
id: discover-submodules
run: |
sudo bash ./scripts/_gen_metadata.sh
sudo bash ./scripts/_submodules.sh > submodules.json
cat submodules.json
echo "submodule-matrix=$(cat submodules.json)" >> $GITHUB_OUTPUT
- name: Commit Metadata
if: github.event_name != 'pull_request' && github.event.repository.fork == false
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
# Stage the changes
git add metadata.json
# Commit only if there are changes
if git commit -m "chore: Add plugin metadata"; then
# Push only if the commit succeeded
git push
else
echo "::debug::No changes to commit."
fi
make:
needs: prepare
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.prepare.outputs.submodule-matrix) }}
name: Build (${{ matrix.submodules.repository }})
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
repository: ${{ matrix.submodules.repository }}
ref: ${{ matrix.submodules.sha }}
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
submodules: recursive
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Install pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: |
pnpm install
env:
NODE_ENV: production
- name: Build Plugin
run: |
pnpm run build
env:
NODE_ENV: production
- name: Prepare Distribution Files
run: |
mkdir -p dist
cp -r ".millennium" dist/.millennium 2>/dev/null || echo "::error::.millennium directory not found, it is required to run the plugin."
cp "plugin.json" dist/plugin.json 2>/dev/null || { echo "::error::plugin.json was not found. It is required for plugins to have."; exit 1; }
cp "requirements.txt" dist/requirements.txt 2>/dev/null || echo "::warning::requirements.txt not found, skipping."
cp "README.md" dist/README.md 2>/dev/null || echo "::warning::README.md not found, skipping."
cp "README" dist/README 2>/dev/null || echo "::warning::README not found, skipping."
BACKEND_DIR=$(jq -r '.backend' plugin.json)
if [ "$BACKEND_DIR" != "null" ]; then
cp -r "$BACKEND_DIR" ./dist/"$BACKEND_DIR"
else
cp -r "backend" ./dist/backend 2>/dev/null || echo "::warning::backend directory not found, skipping."
fi
include=$(jq -r '.include // [] | .[]' plugin.json)
if [ -z "$include" ]; then
echo "::notice::No additional files to include."
else
echo "::notice::Including additional files: $include"
for item in $include; do
mkdir -p "./dist/$(dirname "$item")"
cp -r "./$item" "./dist/$item"
done
fi
echo "::notice::Computing plugin metadata..."
echo "{\"commit\": \"$(git rev-parse HEAD)\", \"id\": \"$(git rev-list --max-parents=0 HEAD)\"}" > dist/metadata.json
id=$(jq -r '.id' dist/metadata.json)
cd dist
echo "::notice::Building plugin archive..."
echo "::notice::Successfully built plugin."
- name: Set Plugin Name
run: echo "PLUGIN_NAME=$(jq -r '.name' plugin.json)" >> $GITHUB_ENV
- name: Upload Plugin
uses: actions/upload-artifact@v4
with:
name: ${{ env.PLUGIN_NAME }}
include-hidden-files: true
path: dist/