name: CI on: push: branches: [main] paths-ignore: - '**.md' - 'assets/**' - '.github/**' - '!.github/workflows/ci.yml' pull_request: # We want all branches so we configure types to be the GH default again types: [opened, synchronize, reopened] paths-ignore: - '**.md' - '.github/**' - '!.github/workflows/ci.yml' env: YARN_ENABLE_GLOBAL_CACHE: false jobs: unit_tests: name: Tests runs-on: ubuntu-latest strategy: matrix: node-version: [lts/*] steps: - name: Checkout sources uses: actions/checkout@v6 - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(corepack yarn config get cacheFolder)" >> $GITHUB_OUTPUT - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install Node.js uses: actions/setup-node@v6 with: node-version: ${{matrix.node-version}} - name: Install dependencies run: corepack yarn install - name: Install Playwright Browsers run: corepack yarn workspace @uppy/dashboard playwright install --with-deps - name: Build run: corepack yarn run build - name: Run tests run: corepack yarn run test env: COMPANION_DATADIR: ./output COMPANION_DOMAIN: localhost:3020 COMPANION_PROTOCOL: http COMPANION_REDIS_URL: redis://localhost:6379 VITE_MINIO_CONFIG: "test_user,test_password,http://localhost:9002/test-bucket,us-east-1" types: name: Types runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v6 - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(corepack yarn config get cacheFolder)" >> $GITHUB_OUTPUT - uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install Node.js uses: actions/setup-node@v6 with: node-version: lts/* - name: Install dependencies run: corepack yarn install - run: corepack yarn run typecheck lint_js: name: Lint runs-on: ubuntu-latest env: SKIP_YARN_COREPACK_CHECK: true steps: - name: Checkout sources uses: actions/checkout@v6 - name: Install Node.js uses: actions/setup-node@v6 with: node-version: lts/* - name: Install dependencies run: corepack yarn workspaces focus @uppy-dev/build - name: Run linter run: corepack yarn run check:ci