chore(release): v1.1.16 Kickoff v1.1.16: clean rebuild scripts + rele… #39
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: Build PlainScript AppImage | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| env: | |
| SKIP_THEIA_CHECK: 1 | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ELECTRON_DOWNLOAD_MAX_ATTEMPTS: 5 | |
| ELECTRON_BUILD_DOWNLOAD_TIMEOUT: 120000 | |
| ELECTRON_BUILD_DOWNLOAD_RETRY: 5 | |
| jobs: | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Clear caches (Linux) | |
| run: | | |
| rm -rf ~/.cache/electron ~/.cache/electron-builder || true | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Prepare Electron cache (Linux) | |
| env: | |
| ELECTRON_CACHE: $RUNNER_TEMP/electron-cache | |
| run: | | |
| mkdir -p "$ELECTRON_CACHE" | |
| echo "Using Electron cache: $ELECTRON_CACHE" | |
| - name: Prefetch Electron to warm cache (Linux) | |
| env: | |
| ELECTRON_CACHE: $RUNNER_TEMP/electron-cache | |
| run: | | |
| npm config set fetch-retry-maxtimeout 120000 | |
| npm config set fetch-retries 5 | |
| npm install electron@38.4.0 --no-audit --prefer-offline || true | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y p7zip-full build-essential python3 libsecret-1-dev libx11-dev libxkbfile-dev | |
| - name: Clean install | |
| run: | | |
| rm -rf node_modules package-lock.json | |
| npm config set fetch-retry-maxtimeout 120000 | |
| npm config set fetch-retries 5 | |
| npm install --no-audit --prefer-offline | |
| - name: Download Theia plugins | |
| run: npm run download:plugins | |
| - name: Build custom-ui | |
| run: npm run build --workspace=custom-ui | |
| - name: Build browser-app | |
| run: npm run build --workspace=browser-app | |
| - name: Build electron-app | |
| run: | | |
| export NODE_OPTIONS=--max_old_space_size=4096 | |
| npm run build --workspace=electron-app | |
| - name: Prepare plugins for electron-app | |
| run: npm run prepare:plugins --workspace=electron-app | |
| - name: Package AppImage | |
| run: npm run package --workspace=electron-app | |
| - name: Make AppImage executable | |
| run: chmod +x electron-app/dist/*.AppImage | |
| - name: Upload AppImage artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: plainscript-appimage | |
| path: electron-app/dist/*.AppImage | |
| retention-days: 30 | |
| - name: Create Release | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: electron-app/dist/*.AppImage | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Clear caches (macOS) | |
| run: | | |
| rm -rf "$HOME/Library/Caches/electron" "$HOME/Library/Caches/electron-builder" || true | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Prepare Electron cache (macOS) | |
| env: | |
| ELECTRON_CACHE: $RUNNER_TEMP/electron-cache | |
| run: | | |
| mkdir -p "$ELECTRON_CACHE" | |
| echo "Using Electron cache: $ELECTRON_CACHE" | |
| - name: Clean install | |
| run: | | |
| rm -rf node_modules package-lock.json | |
| npm config set fetch-retry-maxtimeout 120000 | |
| npm install | |
| - name: Download Theia plugins | |
| run: npm run download:plugins | |
| - name: Build custom-ui | |
| run: npm run build --workspace=custom-ui | |
| - name: Build browser-app | |
| run: npm run build --workspace=browser-app | |
| - name: Build electron-app | |
| run: | | |
| export NODE_OPTIONS=--max_old_space_size=4096 | |
| npm run build --workspace=electron-app | |
| - name: Prepare plugins for electron-app | |
| run: npm run prepare:plugins --workspace=electron-app | |
| - name: Package macOS (DMG + ZIP) | |
| run: npm run package --workspace=electron-app | |
| - name: Upload macOS artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: plainscript-macos | |
| path: electron-app/dist/*.{dmg,zip} | |
| retention-days: 30 | |
| - name: Create Release | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: electron-app/dist/*.{dmg,zip} | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Clean install and rebuild | |
| shell: pwsh | |
| run: | | |
| Remove-Item -Force -Recurse "$env:LOCALAPPDATA\electron\Cache" -ErrorAction SilentlyContinue | |
| Remove-Item -Force -Recurse "$env:LOCALAPPDATA\electron-builder\Cache" -ErrorAction SilentlyContinue | |
| Remove-Item -Force -Recurse node_modules -ErrorAction SilentlyContinue | |
| if (Test-Path package-lock.json) { Remove-Item -Force package-lock.json } | |
| npm config set fetch-retry-maxtimeout 120000 | |
| npm config set fetch-retries 5 | |
| npm install --no-audit --prefer-offline | |
| - name: Download Theia plugins | |
| run: npm run download:plugins | |
| - name: Build custom-ui | |
| run: npm run build --workspace=custom-ui | |
| - name: Build browser-app | |
| run: npm run build --workspace=browser-app | |
| - name: Build electron-app | |
| run: npm run build --workspace=electron-app | |
| - name: Prepare plugins for electron-app | |
| run: npm run prepare:plugins --workspace=electron-app | |
| - name: Package Windows (NSIS + Portable) | |
| run: npm run package --workspace=electron-app | |
| - name: Upload Windows artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: plainscript-windows | |
| path: electron-app/dist/*.exe | |
| retention-days: 30 | |
| - name: Create Release | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: electron-app/dist/*.exe | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |