build-trigger #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}>) |