name: UI Docker on: push: branches: [master] pull_request: branches: [master] jobs: files-changed: name: Detect File Changes runs-on: ubuntu-latest outputs: ui: ${{ steps.changes.outputs.ui }} steps: - name: Checkout uses: actions/checkout@v6 - name: Check for file changes uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1 id: changes with: token: ${{ github.token }} filters: .github/file-filters.yml build: name: Build Docker Image if: needs.files-changed.outputs.ui == 'true' needs: files-changed runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0 - name: Build development image uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: context: ./packages/ui file: ./packages/ui/Dockerfile target: development push: false tags: ocelot-social/ui:development cache-from: type=gha,scope=ui-development cache-to: type=gha,mode=max,scope=ui-development - name: Build production image uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0 with: context: ./packages/ui file: ./packages/ui/Dockerfile target: production push: false tags: ocelot-social/ui:latest cache-from: type=gha,scope=ui-production cache-to: type=gha,mode=max,scope=ui-production