name: CI

on: [push, pull_request]

jobs:

  build:
    name: Create artifacts
    runs-on: ubuntu-latest

    steps:
      # Initialization
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18'
      - run: npm ci
      - name: Copy configuration
        run: cp config.json.example config.json

      # Run linter
      - name: Lint
        run: npm run lint

      # Create Chrome artifacts
      - name: Create Chrome artifacts
        run: npm run build:chrome
      - uses: actions/upload-artifact@v3
        with:
          name: ChromeExtension
          path: dist
      - run: mkdir ./builds
      - uses: montudor/action-zip@0852c26906e00f8a315c704958823928d8018b28
        with:
          args: zip -qq -r ./builds/ChromeExtension.zip ./dist

      # Create Firefox artifacts
      - name: Create Firefox artifacts
        run: npm run build:firefox
      - uses: actions/upload-artifact@v3
        with:
          name: FirefoxExtension
          path: dist
      - uses: montudor/action-zip@0852c26906e00f8a315c704958823928d8018b28
        with:
          args: zip -qq -r ./builds/FirefoxExtension.zip ./dist

      # Create Beta artifacts (Builds with the name changed to beta)
      - name: Create Chrome Beta artifacts
        run: npm run build:chrome -- --env stream=beta
      - uses: actions/upload-artifact@v3
        with:
          name: ChromeExtensionBeta
          path: dist
      - uses: montudor/action-zip@0852c26906e00f8a315c704958823928d8018b28
        with:
          args: zip -qq -r ./builds/ChromeExtensionBeta.zip ./dist

      - name: Create Firefox Beta artifacts
        run: npm run build:firefox -- --env stream=beta
      - uses: actions/upload-artifact@v3
        with:
          name: FirefoxExtensionBeta
          path: dist
      - uses: montudor/action-zip@0852c26906e00f8a315c704958823928d8018b28
        with:
          args: zip -qq -r ./builds/FirefoxExtensionBeta.zip ./dist

