Skip to content

feat(core): implement centralized update scheduler in AddonManager (#37) #29

feat(core): implement centralized update scheduler in AddonManager (#37)

feat(core): implement centralized update scheduler in AddonManager (#37) #29

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
verify-and-build:
name: Verify and Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Lint
run: bun run lint
- name: Typecheck
run: bun run typecheck
- name: Run tests
run: bun test --only-failures
- name: Build Standalone Executables
run: |
mkdir -p dist
# Linux x64
bun build --compile --minify --sourcemap --target=bun-linux-x64 ./index.tsx --outfile dist/lemonup-linux-x64
# Windows x64
bun build --compile --minify --sourcemap --target=bun-windows-x64 ./index.tsx --outfile dist/lemonup-windows-x64.exe
# macOS ARM64
bun build --compile --minify --sourcemap --target=bun-darwin-arm64 ./index.tsx --outfile dist/lemonup-macos-arm64
# macOS x64
bun build --compile --minify --sourcemap --target=bun-darwin-x64 ./index.tsx --outfile dist/lemonup-macos-x64
- name: Debug - List Dist
run: ls -R dist
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
dist/lemonup-linux-x64
dist/lemonup-windows-x64.exe
dist/lemonup-macos-arm64
dist/lemonup-macos-x64
generate_release_notes: true
fail_on_unmatched_files: true
update-homebrew:
name: Update Homebrew Formula
if: false
needs: verify-and-build
runs-on: ubuntu-latest
steps:
- name: Checkout Homebrew Repository
uses: actions/checkout@v4
with:
repository: archcorsair/homebrew-lemonup
token: ${{ secrets.GITHUB_TOKEN }}
path: homebrew-lemonup
- name: Calculate SHA256 Checksums
id: calculate-sha
run: |
echo "Calculating SHA256 hashes"
SHA_LINUX_X64=$(shasum -a 256 dist/lemonup-linux-x64 | cut -d' ' -f1)
SHA_MACOS_X64=$(shasum -a 256 dist/lemonup-macos-x64 | cut -d' ' -f1)
SHA_MACOS_ARM64=$(shasum -a 256 dist/lemonup-macos-arm64 | cut -d' ' -f1)
SHA_WINDOWS_X64=$(shasum -a 256 dist/lemonup-windows-x64.exe | cut -d' ' -f1)
echo "::set-output name=sha_linux_x64::${SHA_LINUX_X64}"
echo "::set-output name=sha_macos_x64::${SHA_MACOS_X64}"
echo "::set-output name=sha_macos_arm64::${SHA_MACOS_ARM64}"
echo "::set-output name=sha_windows_x64::${SHA_WINDOWS_X64}"
- name: Update Lemonup Formula
run: |
cd homebrew-lemonup
sed -i "s/version \".*\"/version \"$GITHUB_REF_NAME\"/" Formula/lemonup.rb
sed -i "0,/sha256 \".*\"/s/sha256 \".*\"/sha256 \"${{ steps.calculate-sha.outputs.sha_macos_arm64 }}\"/" Formula/lemonup.rb
sed -i "0,/sha256 \".*\"/s/sha256 \".*\"/sha256 \"${{ steps.calculate-sha.outputs.sha_macos_x64 }}\"/" Formula/lemonup.rb
sed -i "0,/sha256 \".*\"/s/sha256 \".*\"/sha256 \"${{ steps.calculate-sha.outputs.sha_linux_x64 }}\"/" Formula/lemonup.rb
sed -i "0,/sha256 \".*\"/s/sha256 \".*\"/sha256 \"${{ steps.calculate-sha.outputs.sha_windows_x64 }}\"/" Formula/lemonup.rb
git config user.email "[email protected] "
git config user.name "Daniel Shneyder"
git add Formula/lemonup.rb
git commit -m "Update Homebrew formula for version $GITHUB_REF_NAME"
git push
- name: Verify Commit
run: git log -1