diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml new file mode 100644 index 00000000..7d40d472 --- /dev/null +++ b/.github/workflows/nightly-release.yml @@ -0,0 +1,108 @@ +name: Nightly Release + +on: + # schedule: + # - cron: '0 2 * * *' + workflow_dispatch: + +jobs: + publish: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [windows-latest, macos-latest, ubuntu-latest] + + steps: + - name: Checkout git repo + uses: actions/checkout@v1 + + - name: Install Node and PNPM + uses: pnpm/action-setup@v4.1.0 + with: + version: 9 + + - name: Install dependencies + run: pnpm install + + - name: Bump version and add beta suffix + run: | + # Get current version from package.json + CURRENT_VERSION=$(node -p "require('./package.json').version") + echo "Current version: $CURRENT_VERSION" + + # Extract major, minor, patch components + IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION" + + # Increment patch version + NEW_PATCH=$((PATCH + 1)) + + # Create new version with beta suffix + NEW_VERSION="${MAJOR}.${MINOR}.${NEW_PATCH}-beta" + echo "New version: $NEW_VERSION" + + # Update package.json + node -e " + const fs = require('fs'); + const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8')); + pkg.version = '$NEW_VERSION'; + fs.writeFileSync('package.json', JSON.stringify(pkg, null, 4) + '\n'); + " + + echo "Updated package.json version to: $NEW_VERSION" + + # - name: Build and Publish releases (Windows) + # if: matrix.os == 'windows-latest' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # uses: nick-invision/retry@v2.8.2 + # with: + # timeout_minutes: 30 + # max_attempts: 3 + # retry_on: error + # command: | + # pnpm run package:win + # pnpm run publish:win + # on_retry_command: pnpm cache delete + + # - name: Build and Publish releases (macOS) + # if: matrix.os == 'macos-latest' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # uses: nick-invision/retry@v2.8.2 + # with: + # timeout_minutes: 30 + # max_attempts: 3 + # retry_on: error + # command: | + # pnpm run package:mac + # pnpm run publish:mac + # on_retry_command: pnpm cache delete + + # - name: Build and Publish releases (Linux) + # if: matrix.os == 'ubuntu-latest' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # uses: nick-invision/retry@v2.8.2 + # with: + # timeout_minutes: 30 + # max_attempts: 3 + # retry_on: error + # command: | + # pnpm run package:linux + # pnpm run publish:linux + # on_retry_command: pnpm cache delete + + # - name: Build and Publish releases (Linux ARM64) + # if: matrix.os == 'ubuntu-latest' + # env: + # GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # uses: nick-invision/retry@v2.8.2 + # with: + # timeout_minutes: 30 + # max_attempts: 3 + # retry_on: error + # command: | + # pnpm run package:linux-arm64 + # pnpm run publish:linux-arm64 + # on_retry_command: pnpm cache delete diff --git a/package.json b/package.json index 08665317..9121f565 100644 --- a/package.json +++ b/package.json @@ -176,5 +176,9 @@ "esbuild" ] }, + "build": { + "generateUpdateFilesForAllChannels": true, + "allowDowngrade": true + }, "productName": "feishin" }