name: Build releases on: push: paths: - .github/workflows/build.yml - src/** - browser/** - scripts/build/** - package.json - pnpm-lock.yaml env: FORCE_COLOR: true jobs: Build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v3 # Install pnpm using packageManager key in package.json - name: Use Node.js 20 uses: actions/setup-node@v4 with: node-version: 20 cache: "pnpm" - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build web run: pnpm buildWebStandalone - name: Build run: pnpm build --standalone - name: Generate plugin list run: pnpm generatePluginJson dist/plugins.json dist/plugin-readmes.json - name: Clean up obsolete files run: | rm -rf dist/*-unpacked dist/monaco Vencord.user.css vencordDesktopRenderer.css vencordDesktopRenderer.css.map - name: Get some values needed for the release run: | echo "commit_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV gh release view devbuild &> /dev/null \ && echo "devbuild_exists=true" >> $GITHUB_ENV \ || echo "devbuild_exists=false" >> $GITHUB_ENV - name: Upload latest release (devbuild) if: env.devbuild_exists == 'true' && startsWith(github.ref, 'refs/heads/') && github.ref_name == 'main' && github.event.created run: | gh release upload devbuild --clobber dist/* gh release edit devbuild --title "DevBuild $COMMIT_SHORT" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload branch release if: env.devbuild_exists == 'true' && startsWith(github.ref, 'refs/heads/') && github.ref_name != 'main' && github.event.created run: | gh release create branch-$GITHUB_REF_NAME --latest=false --prerelease --target $GITHUB_REF_NAME --title "PreBuild $GITHUB_REF_NAME" || true gh release upload branch-$GITHUB_REF_NAME --clobber dist/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload commit release if: env.devbuild_exists == 'true' && startsWith(github.ref, 'refs/heads/') && github.event.created continue-on-error: true run: | gh release create commit-$COMMIT_SHORT --latest=false --prerelease --target $GITHUB_SHA --title "PreBuild $COMMIT_SHORT" gh release upload commit-$COMMIT_SHORT --clobber dist/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload DevBuild to builds repo if: env.devbuild_exists == 'true' && startsWith(github.ref, 'refs/heads/') && github.ref_name == 'main' && github.event.created run: | git config --global user.name "$USERNAME" git config --global user.email actions@github.com git clone https://$USERNAME:$API_TOKEN@github.com/$GH_REPO.git upload cd upload GLOBIGNORE=.git:.gitignore:README.md:LICENSE rm -rf * cp -r ../dist/* . git add -A git commit -m "Builds for https://github.com/$GITHUB_REPOSITORY/commit/$GITHUB_SHA" git push --force https://$USERNAME:$API_TOKEN@github.com/$GH_REPO.git env: API_TOKEN: ${{ secrets.BUILDS_TOKEN }} GH_REPO: Vencord/builds USERNAME: GitHub-Actions