at main 2.5 kB view raw
1name: check rust services 2 3on: 4 pull_request: 5 paths: 6 - "moderation/**" 7 - "transcoder/**" 8 - ".github/workflows/check-rust.yml" 9 10permissions: 11 contents: read 12 13jobs: 14 changes: 15 name: detect changes 16 runs-on: ubuntu-latest 17 outputs: 18 moderation: ${{ steps.filter.outputs.moderation }} 19 transcoder: ${{ steps.filter.outputs.transcoder }} 20 steps: 21 - uses: actions/checkout@v4 22 - uses: dorny/paths-filter@v3 23 id: filter 24 with: 25 filters: | 26 moderation: 27 - 'moderation/**' 28 - '.github/workflows/check-rust.yml' 29 transcoder: 30 - 'transcoder/**' 31 - '.github/workflows/check-rust.yml' 32 33 check: 34 name: cargo check 35 runs-on: ubuntu-latest 36 timeout-minutes: 15 37 needs: changes 38 39 strategy: 40 fail-fast: false 41 matrix: 42 include: 43 - service: moderation 44 changed: ${{ needs.changes.outputs.moderation }} 45 - service: transcoder 46 changed: ${{ needs.changes.outputs.transcoder }} 47 48 steps: 49 - uses: actions/checkout@v4 50 if: matrix.changed == 'true' 51 52 - name: install rust toolchain 53 if: matrix.changed == 'true' 54 uses: dtolnay/rust-toolchain@stable 55 56 - name: cache cargo 57 if: matrix.changed == 'true' 58 uses: Swatinem/rust-cache@v2 59 with: 60 workspaces: ${{ matrix.service }} 61 62 - name: cargo check 63 if: matrix.changed == 'true' 64 working-directory: ${{ matrix.service }} 65 run: cargo check --release 66 67 - name: skip (no changes) 68 if: matrix.changed != 'true' 69 run: echo "skipping ${{ matrix.service }} - no changes" 70 71 docker-build: 72 name: docker build 73 runs-on: ubuntu-latest 74 timeout-minutes: 10 75 needs: [changes, check] 76 77 strategy: 78 fail-fast: false 79 matrix: 80 include: 81 - service: moderation 82 changed: ${{ needs.changes.outputs.moderation }} 83 - service: transcoder 84 changed: ${{ needs.changes.outputs.transcoder }} 85 86 steps: 87 - uses: actions/checkout@v4 88 if: matrix.changed == 'true' 89 90 - name: build docker image 91 if: matrix.changed == 'true' 92 working-directory: ${{ matrix.service }} 93 run: docker build -t ${{ matrix.service }}:ci-test . 94 95 - name: skip (no changes) 96 if: matrix.changed != 'true' 97 run: echo "skipping ${{ matrix.service }} - no changes"