update version #62
Workflow file for this run
This file contains hidden or 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: Release | |
| on: | |
| workflow_dispatch: | |
| push: | |
| tags: | |
| - 'v*' | |
| permissions: | |
| # required to modify releases | |
| contents: write | |
| jobs: | |
| release-linux-noarch: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: Install strip-nondeterminism | |
| run: sudo apt-get install strip-nondeterminism | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Setup bun ⚙️ | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install dependencies | |
| run: bun install --loglevel=info | |
| - name: Fetch | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: bun run fetch | |
| - name: Compile | |
| run: bun run webpack:prod | |
| - name: Package | |
| run: | | |
| node release-automation/build.js --debian --tarball --appimage --x64 --armv7l --arm64 --production | |
| - name: Print file tree | |
| run: node scripts/print-file-tree.js dist | |
| - name: Upload artifacts to GitHub Actions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: arch-conversion-artifacts | |
| path: | | |
| dist/*.deb | |
| dist/*.tar.gz | |
| dist/*.AppImage | |
| convertarch.sh | |
| retention-days: 1 | |
| release-linux-includearch: | |
| needs: release-linux-noarch | |
| runs-on: ubuntu-latest | |
| container: | |
| image: archlinux:base-devel | |
| options: --privileged | |
| steps: | |
| - name: Prepare Arch environment | |
| run: | | |
| pacman -Syu --noconfirm | |
| pacman -S --noconfirm sudo git base-devel namcap libarchive zstd | |
| useradd -m -s /bin/bash builduser | |
| echo "builduser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/builduser | |
| echo 'export TERM=xterm' >> /etc/bash.bashrc | |
| - name: Install and update debtap | |
| run: | | |
| sudo -u builduser bash <<'EOF' | |
| set -e | |
| export TERM=xterm | |
| cd /home/builduser | |
| git clone https://aur.archlinux.org/debtap.git | |
| cd debtap | |
| makepkg -si --noconfirm | |
| EOF | |
| debtap -u | |
| debtap --version || true | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: arch-conversion-artifacts | |
| path: /workspace | |
| - name: Setup workspace | |
| run: | | |
| cd /workspace | |
| ls -la | |
| chmod +x convertarch.sh | |
| mkdir -p dist | |
| find . -name "*.deb" -exec mv {} dist/ \; 2>/dev/null || true | |
| if [ -f "convertarch.sh" ]; then | |
| cp convertarch.sh convertarch.sh.backup | |
| sed -i 's/debtap/sudo debtap/g' convertarch.sh || true | |
| fi | |
| find dist -name "*.deb" | sort | |
| - name: Convert packages | |
| working-directory: /workspace | |
| run: | | |
| export TERM=xterm | |
| ./convertarch.sh | |
| - name: Verify packages | |
| working-directory: /workspace | |
| run: | | |
| find . -name "*.pkg.tar.zst" -ls 2>/dev/null | head -10 || true | |
| ls -la arch-packages/ 2>/dev/null || true | |
| pwd | |
| ls -la | |
| - name: Copy arch files | |
| run: cp /workspace/arch-packages/*.pkg.tar.zst /workspace/dist/ | |
| - name: Upload packages | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: linux | |
| path: | | |
| /workspace/dist/*.pkg.tar.zst | |
| /workspace/dist/*.deb | |
| /workspace/dist/*.tar.gz | |
| /workspace/dist/*.AppImage | |
| - name: Upload artifacts to tag | |
| uses: xresloader/upload-to-github-release@2bcae85344d41e21f7fc4c47fa2ed68223afdb49 | |
| with: | |
| file: /workspace/dist/*.deb;/workspace/dist/*.tar.gz;/workspace/dist/*.AppImage;/workspace/dist/*.pkg.tar.zst | |
| draft: false | |
| release-mac: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Setup bun ⚙️ | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install dependencies | |
| run: bun install --loglevel=info | |
| - name: Fetch | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: bun run fetch | |
| - name: Compile | |
| run: bun run webpack:prod | |
| - name: Package | |
| run: | | |
| node release-automation/build.js --mac --universal | |
| node release-automation/build.js --mac-legacy-10.13-10.14 --mac-legacy-10.15 --x64 | |
| - name: Print file tree | |
| run: node scripts/print-file-tree.js dist | |
| - name: Upload artifacts to GitHub Actions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: mac | |
| path: dist/*.dmg | |
| - name: Upload artifacts to tag | |
| uses: xresloader/upload-to-github-release@2bcae85344d41e21f7fc4c47fa2ed68223afdb49 | |
| with: | |
| file: dist/*.dmg | |
| draft: false | |
| release-windows: | |
| # GitHub's Windows runners have a C: drive and a D: drive. | |
| # C: is for the OS and has good read performance but awful write performance. | |
| # D: has much better faster write performance (>20x faster than C:) | |
| # We want to use the D: drive whenever we can. Trying to do "npm ci" on the C: | |
| # drive has been observed to take over an hour! | |
| runs-on: windows-latest | |
| steps: | |
| # actions/checkout can only clone to paths in $GITHUB_WORKSPACE which is on the C: drive, | |
| # so we have to clone to C: then copy to D: after. This repository itself isn't huge so | |
| # this is plenty fast. | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| path: repo | |
| - name: "Move repository to D: drive" | |
| run: | | |
| Copy-Item -Path repo -Destination D:\repo -Recurse | |
| Remove-Item -Path repo -Recurse -Force | |
| - name: Install Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Setup bun ⚙️ | |
| uses: oven-sh/setup-bun@v2 | |
| # The repository being on D: means that node_modules IO will be fast, but npm still downloads | |
| # packages to a temporary folder for caching which is on C: by default. We need to make sure | |
| # npm uses the D: drive instead otherwise we still get bottlenecked by C:. | |
| - name: "Configure Bun cache and prefix to D: drive" | |
| run: | | |
| echo "BUN_INSTALL_CACHE_DIR=D:\bun-cache" >> $GITHUB_ENV | |
| echo "BUN_INSTALL_GLOBAL_DIR=D:\bun-global" >> $GITHUB_ENV | |
| - name: Install dependencies | |
| working-directory: D:\repo | |
| run: bun install --loglevel=info | |
| - name: Fetch | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| working-directory: D:\repo | |
| run: bun run fetch | |
| - name: Compile | |
| working-directory: D:\repo | |
| run: bun run webpack:prod | |
| - name: Package | |
| working-directory: D:\repo | |
| run: | | |
| node release-automation/build.js --windows --microsoft-store --x64 --ia32 --arm64 --production | |
| node release-automation/build.js --windows-portable --x64 --production | |
| node release-automation/build.js --windows-legacy --ia32 --x64 --production | |
| - name: Print file tree | |
| working-directory: D:\repo | |
| run: node scripts/print-file-tree.js dist | |
| - name: Sign Windowsapplication | |
| working-directory: D:\repo | |
| run: deepsigntool\sign_windows.cmd | |
| - name: Upload signed artifacts to GitHub Actions | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: windows-signed | |
| path: D:\repo\windows_signed\*.exe | |
| - name: Upload signed artifacts to tag | |
| uses: xresloader/upload-to-github-release@2bcae85344d41e21f7fc4c47fa2ed68223afdb49 | |
| with: | |
| file: D:\repo\windows_signed\*.exe | |
| draft: false |