name: build-pipeline on: pull_request: branches: - develop - main - v* paths: - "pkg/**" - "frontend/**" jobs: get_filters: runs-on: ubuntu-latest # Set job outputs to values from filter step outputs: frontend: ${{ steps.filter.outputs.frontend }} query-service: ${{ steps.filter.outputs.query-service }} flattener: ${{ steps.filter.outputs.flattener }} steps: # For pull requests it's not necessary to checkout the code - uses: dorny/paths-filter@v2 id: filter with: filters: | frontend: - 'frontend/**' query-service: - 'pkg/query-service/**' flattener: - 'pkg/processors/flattener/**' build-frontend: runs-on: ubuntu-latest needs: - get_filters if: ${{ needs.get_filters.outputs.frontend == 'true' }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Install dependencies run: cd frontend && yarn install - name: Run ESLint run: cd frontend && npm run lint - name: TSC run: yarn tsc working-directory: ./frontend - name: Build frontend docker image shell: bash run: | make build-frontend-amd64 build-query-service: runs-on: ubuntu-latest needs: - get_filters if: ${{ needs.get_filters.outputs.query-service == 'true' }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Build query-service image shell: bash run: | make build-query-service-amd64 build-flattener: runs-on: ubuntu-latest needs: - get_filters if: ${{ needs.get_filters.outputs.flattener == 'true' }} steps: - name: Checkout code uses: actions/checkout@v2 - name: Build flattener docker image shell: bash run: | make build-flattener-amd64