main #20
This file contains 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: main | |
on: workflow_dispatch | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: | |
- windows-latest | |
- macos-latest | |
- ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set up checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- uses: pnpm/action-setup@v3 | |
name: "Set up pnpm" | |
with: | |
version: latest | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
# - name: Set up Electron cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: ${{ github.workspace }}/.cache/electron | |
# key: ${{ runner.os }}-electron-cache-${{ hashFiles('**/pnpm-lock.yaml') }} | |
# restore-keys: ${{ runner.os }}-electron-cache- | |
# - name: Set up Electron Builder cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: ${{ github.workspace }}/.cache/electron-builder | |
# key: ${{ runner.os }}-electron-builder-cache-${{ hashFiles('**/pnpm-lock.yaml') }} | |
# restore-keys: ${{ runner.os }}-electron-builder-cache- | |
- name: Set up dependencies | |
run: pnpm i | |
- name: Lint | |
run: pnpm lint | |
- name: Create .env file | |
run: | | |
touch .env | |
echo VITE_APP_ELECTRON_STORE_KEY=${{ secrets.ELECTRON_STORE_KEY }} >> .env | |
echo VITE_APP_SHARE_ENCRYPTION_KEY=${{ secrets.SHARE_ENCRYPTION_KEY }} >> .env | |
echo VITE_APP_ANONYMOUS_TOKEN=${{ secrets.ANONYMOUS_TOKEN }} >> .env | |
echo VITE_APP_DISCORD_CLIENT_ID=${{ secrets.DISCORD_CLIENT_ID }} >> .env | |
cat .env | |
- name: Install packages (Linux-only) | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt install flatpak flatpak-builder libarchive-tools rpm -y | |
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo | |
- name: Release | |
env: | |
ELECTRON_CACHE: ${{ github.workspace }}/.cache/electron | |
ELECTRON_BUILDER_CACHE: ${{ github.workspace }}/.cache/electron-builder | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
run: pnpm release |