GoonCord/.github/workflows/build.yaml
Jonathan Sydorowicz 45c28772ac Fix build workflow
2025-05-30 12:31:56 -05:00

87 lines
2.6 KiB
YAML

name: Node.js CI / CD
on:
push:
branches: [ "main" ]
jobs:
buildAndRelease:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- run: |
pnpm build --release-branch=${{ github.ref_name }} --build-minify
# - name: Create Release
# if: github.event_name == 'push' && github.ref == 'refs/heads/main'
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: v${{ github.run_number }}
# release_name: Release v${{ github.run_number }}
# draft: false
# prerelease: false
- name: Push JS files to dist branch
run: |
# Configure git
git config --local user.email "actions@github.com"
git config --local user.name "GitHub Actions"
# Create a temporary directory for the dist branch
mkdir -p temp_dist
# Copy only JS files from dist/ to temp directory
find dist -name "*.js" -exec cp {} temp_dist/ \;
# Create and checkout dist branch
git checkout --orphan dist-temp
git rm -rf --cached .
# Move the JS files to the root
cp -r temp_dist/* .
rm -rf temp_dist
# Add, commit and push to dist branch
git add *.js
git commit -m "Update build $GITHUB_SHA" || exit 0
git push -f origin HEAD:dist
# Return to the original branch
git checkout -f ${GITHUB_REF#refs/heads/}