diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b36b1e..65d6ed7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,3 +71,26 @@ jobs: - name: Build run: npm run build + + build-linux-arm64: + name: Build (linux-arm64) + runs-on: ubuntu-24.04-arm + needs: lint-typecheck-test + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9002aa5..989874a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,10 +94,49 @@ jobs: if-no-files-found: ignore retention-days: 30 + package-linux-arm64: + name: Package (linux-arm64) + runs-on: ubuntu-24.04-arm + needs: validate + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y libsecret-1-dev + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Package + run: npx electron-builder --linux --arm64 --publish never + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: sncode-linux-arm64 + path: | + release/*.AppImage + release/*.yml + release/*.yaml + if-no-files-found: ignore + retention-days: 30 + release: name: Create Release runs-on: ubuntu-latest - needs: package + needs: [package, package-linux-arm64] # Only create a release when triggered by a tag push or when a version is specified if: startsWith(github.ref, 'refs/tags/v') || inputs.version != ''