Skip to content

build-trigger

build-trigger #4

name: Build Extension
on:
repository_dispatch:
types: [build-trigger]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Extension Repo
uses: actions/checkout@v3
- name: Uses PNPM
uses: pnpm/action-setup@v2.0.1
with:
version: 6.20.4
- name: Uses Node.js 16.x
uses: actions/setup-node@v2
with:
node-version: '16.x'
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install
- name: Clone FrankerFaceZ Repository
run: |
git clone https://github.com/FrankerFaceZ/FrankerFaceZ.git client
- name: Clone Add-Ons Repository
run: |
git clone https://github.com/FrankerFaceZ/Add-Ons.git addons
- name: Calculate and Log Version
run: |
# Get the version of the main client.
cd client
VERSION=$(node -p "require('./package.json').version")
CLIENT_COMMIT_HASH=$(git rev-parse HEAD)
echo "Main Client Version: $VERSION"
echo "Main Client Commit: $CLIENT_COMMIT_HASH"
# Now determine when the version was last modified.
LAST_MODIFIED=$(git log -1 --pretty=format:%ct -- package.json)
echo "Last Modified: $LAST_MODIFIED"
cd ..
# Navigate to the Add-Ons next.
cd addons
# And extract the relevant info
# And count the number of commits since the last modified time.
ADDONS_COMMIT_HASH=$(git rev-parse HEAD)
BUILD=$(git rev-list --count --since=@$LAST_MODIFIED HEAD)
echo "Add-Ons Commit: $ADDONS_COMMIT_HASH"
echo "Build Number (add-on commits since last main client update): $BUILD"
cd ..
# Export FFZ_VERSION and FFZ_BUILD as an environment variable for subsequent steps.
echo "CLIENT_COMMIT_HASH=$CLIENT_COMMIT_HASH" >> $GITHUB_ENV
echo "ADDONS_COMMIT_HASH=$ADDONS_COMMIT_HASH" >> $GITHUB_ENV
echo "FFZ_VERSION=$VERSION" >> $GITHUB_ENV
echo "FFZ_BUILD=$BUILD" >> $GITHUB_ENV
- name: Build the Main Client
run: |
cd client
pnpm install
FFZ_EXTENSION=true pnpm build
cd ..
- name: Build the Add-Ons Repository
run: |
cd addons
pnpm install
FFZ_EXTENSION=true pnpm build
cd ..
- name: Run Final Build
run: pnpm build
- name: Package for Firefox
run: |
echo "TODO: THIS"
- name: Package for Chrome
run: |
echo "TODO: THIS"
- name: Upload Artifacts
id: artifact-upload-step
if: success()
uses: actions/upload-artifact@v4
with:
name: built
path: dist/*
- name: Report Success
if: success()
uses: tsickert/discord-webhook@v5.3.0
with:
webhook-url: ${{ secrets.WEBHOOK_URL }}
embed-color: 3066993
embed-title: ✅ Extension Build Succeeded
embed-url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
embed-description: |
**Version**: ${{ env.FFZ_VERSION }}+${{ env.FFZ_BUILD }}
**Main Client Commit**: ${{ env.CLIENT_COMMIT_HASH }}
**Add-Ons Commit**: ${{ env.ADDONS_COMMIT_HASH }}
[Download Artifact](<${{ steps.artifact-upload-step.outputs.artifact-url }}>)
- name: Report Failure
if: failure()
uses: tsickert/discord-webhook@v5.3.0
with:
webhook-url: ${{ secrets.WEBHOOK_URL }}
embed-color: 15158332
embed-title: ❌ Extension Build Failed
embed-url: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
embed-description: |
**Version**: ${{ env.FFZ_VERSION }}+${{ env.FFZ_BUILD }}
**Main Client Commit**: ${{ env.CLIENT_COMMIT_HASH }}
**Add-Ons Commit**: ${{ env.ADDONS_COMMIT_HASH }}
Please check the logs for details.