name: BetterDiscord CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v3
      
    - name: Install Node.js
      uses: actions/setup-node@v3
      with:
        node-version: 16
        
    - uses: pnpm/action-setup@v2
      name: Install pnpm
      id: pnpm-install
      with:
        version: 7
        run_install: false

    - name: Get pnpm store directory
      id: pnpm-cache
      shell: bash
      run: |
        echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

    - uses: actions/cache@v3
      name: Setup pnpm cache
      with:
        path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
        key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
        restore-keys: |
          ${{ runner.os }}-pnpm-store-

    - name: Install dependencies
      run: pnpm install --frozen-lockfile
      
#    - name: Lint
#      run: pnpm lint
      
#    - name: Run tests
#      run: pnpm test
      
    - name: Build asar
      run: pnpm dist
      
    - uses: actions/upload-artifact@v3
      name: Upload artifact
#      if: ${{ github.ref == 'refs/heads/main' }} # Only create artifacts when pushed to main
      with:
        name: betterdiscord.asar
        path: dist/betterdiscord.asar
        retention-days: 30
        if-no-files-found: error
