Skip to content

build-trigger

build-trigger #5

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: 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: Make a Source Artifact for Firefox
id: source-upload-step
uses: actions/upload-artifact@v4
with:
name: source
path: |
.github/*
client/*
addons/*
src/*
- 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: Copy Build Output
run: |
set -e
mkdir dist
mkdir dist/web
cp -r client/dist/* dist/web/
cp -r addons/dist/* dist/web/
cp -rf src/* dist/
- name: Rename the Add-Ons Manifest
run: node rename-addon-manifest.js
- name: Edit Manifest (Insert Version)
run: node update-manifest.js
- name: Upload Output
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 }}](<https://github.com/FrankerFaceZ/FrankerFaceZ/commit/${{ env.CLIENT_COMMIT_HASH }}>)
**Add-Ons Commit**: [${{ env.ADDONS_COMMIT_HASH }}](<https://github.com/FrankerFaceZ/Add-Ons/commit/${{ env.ADDONS_COMMIT_HASH }}>)
[Download Source](<${{ steps.source-upload-step.outputs.artifact-url }}>)
[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 }}](<https://github.com/FrankerFaceZ/FrankerFaceZ/commit/${{ env.CLIENT_COMMIT_HASH }}>)
**Add-Ons Commit**: [${{ env.ADDONS_COMMIT_HASH }}](<https://github.com/FrankerFaceZ/Add-Ons/commit/${{ env.ADDONS_COMMIT_HASH }}>)
Please check the logs for details.
[Download Source](<${{ steps.source-upload-step.outputs.artifact-url }}>)