name: Budibase CI concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true on: # Trigger the workflow on push or pull request, # but only for the master branch push: branches: - master - develop pull_request: branches: - master - develop workflow_dispatch: env: BRANCH: ${{ github.event.pull_request.head.ref }} BASE_BRANCH: ${{ github.event.pull_request.base.ref}} PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn lint build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn # Run build all the projects - run: yarn build # Check the types of the projects built via esbuild - run: yarn check:types test-libraries: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn test --ignore=@budibase/worker --ignore=@budibase/server --ignore=@budibase/pro - uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos name: codecov-umbrella verbose: true test-services: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn test --scope=@budibase/worker --scope=@budibase/server - uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN || github.token }} # not required for public repos name: codecov-umbrella verbose: true test-pro: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn test --scope=@budibase/pro integration-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn build - name: Run tests run: | cd qa-core yarn setup yarn test:ci env: BB_ADMIN_USER_EMAIL: admin BB_ADMIN_USER_PASSWORD: admin