name: Library Checks on: pull_request: push: branches: - main paths-ignore: - 'website/**' merge_group: jobs: build-type-and-test: name: Build Type and Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: yarn - run: yarn install --immutable - name: Turbo Cache id: turbo-cache uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-build:type-${{ github.sha }} - name: Build Types run: yarn build:type --cache-dir=".turbo" build-dist: name: Build Dist runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: yarn - run: yarn install --immutable - name: Turbo Cache id: turbo-cache uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-build-${{ github.sha }} - name: Type Test run: yarn build --cache-dir=".turbo" format: name: Format runs-on: ubuntu-latest needs: build-type-and-test steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: yarn - run: yarn install --immutable - name: Turbo Cache id: turbo-cache uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-lint-${{ github.sha }} - name: Build type cache if: steps.turbo-cache.outputs.cache-hit != 'true' uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-build:type-${{ github.sha }} - name: Check Formatting run: yarn check:all test-type-unit-and-integration-test: name: Typecheck Tests runs-on: ubuntu-latest needs: build-type-and-test steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: yarn - run: yarn install --immutable - name: Turbo Cache id: turbo-cache uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-unit-and-integration-test:test-type-${{ github.sha }} - name: Build type cache if: steps.turbo-cache.outputs.cache-hit != 'true' uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-build:type-${{ github.sha }} - name: Test Type Test run: yarn test:test-type --cache-dir=".turbo" # Not using matrix because test later on cant needs a specific job bot-unit-test: name: Bot needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: bot # https://github.com/orgs/community/discussions/12835 # bot-e2e-test: # name: Bot # needs: bot-unit-test # if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'merge_group' }} # uses: ./.github/workflows/e2e-test.yml # secrets: inherit # with: # package: bot bot-other-runtime-test: name: Bot needs: bot-unit-test uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: bot discordeno-unit-test: name: Discordeno needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: discordeno discordeno-other-runtime-test: name: Discordeno needs: discordeno-unit-test uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: discordeno gateway-unit-test: name: Gateway needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: gateway gateway-integration-test: name: Gateway needs: build-dist uses: ./.github/workflows/integration-test.yml secrets: inherit with: package: gateway gateway-other-runtime-test: name: Gateway needs: [gateway-unit-test] uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: gateway rest-unit-test: name: Rest needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: rest # https://github.com/orgs/community/discussions/12835 # rest-e2e-test: # name: Rest # needs: rest-unit-test # if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'merge_group' }} # uses: ./.github/workflows/e2e-test.yml # secrets: inherit # with: # package: rest rest-other-runtime-test: name: Rest needs: rest-unit-test uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: rest types-unit-test: name: Types needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: types types-other-runtime-test: name: Types needs: types-unit-test uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: types utils-unit-test: name: Utils needs: [build-dist] uses: ./.github/workflows/unit-test.yml secrets: inherit with: package: utils utils-other-runtime-test: name: Utils needs: utils-unit-test uses: ./.github/workflows/other-runtime-unit-test.yml secrets: inherit with: package: utils