name: Build on: repository_dispatch: types: [external_build_trigger] workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Get latest release id: get_tag run: | LATEST_TAG=$(curl -s https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest | jq -r '.tag_name') echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_OUTPUT - uses: actions/checkout@v4 with: repository: signalapp/Signal-Desktop ref: ${{ steps.get_tag.outputs.LATEST_TAG }} fetch-depth: 1 - name: Install jq run: | sudo apt update sudo apt install -y jq python3 - name: Add AppImage run: | cp package.json package.json.orig cat package.json.orig | jq '.build.linux.target = ["AppImage", "tar.gz"]' > package.json - name: Read .nvmrc run: echo "NODE_VERSION=$(cat .nvmrc)" >> $GITHUB_OUTPUT id: nvm - name: Use Node.js ${{ steps.nvm.outputs.NODE_VERSION }} uses: actions/setup-node@v2 with: node-version: ${{ steps.nvm.outputs.NODE_VERSION }} - name: Setup pnpm uses: pnpm/action-setup@v4.1.0 - name: Build run: | pnpm build --platform linux - name: Upload Build Artifacts uses: actions/upload-artifact@v4.6.2 with: name: signal-desktop-${{ steps.get_tag.outputs.LATEST_TAG }} path: | release/*.AppImage release/*.tar.gz