name: Budibase CI 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 }} - name: Use Node.js 14.x uses: actions/setup-node@v3 with: node-version: 14.x cache: "yarn" - run: yarn - run: yarn nx run-many -t=build --configuration=production test-libraries: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_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 }} - 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 }} # 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 }} - 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 }} - 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 check-pro-submodule: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} fetch-depth: 0 - name: Check submodule run: | cd packages/pro git fetch if ! git merge-base --is-ancestor $(git log -n 1 --pretty=format:%H) origin/develop; then echo "Current commit has not been merged to develop" echo "Refer to the pro repo to merge your changes: https://github.com/Budibase/budibase-pro/blob/develop/docs/getting_started.md" exit 1 else echo "All good, the submodule had been merged!" fi