diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 359e10a..57480cc 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - chore/path-filter release: types: - published @@ -13,7 +14,34 @@ env: IMAGE_NAME: ${{ github.repository }} jobs: + changes: + name: detect what files changed + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + server: ${{ steps.filter.outputs.server }} + chart: ${{ steps.filter.outputs.chart }} + CR: ${{ steps.filter.outputs.CR }} + web: ${{ steps.filter.outputs.web }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + server: + - 'server/**' + chart: + - 'chart/**' + CR: + - 'collecy-currency/**' + web: + - 'web/**' + build-and-push-server: + needs: changes + if: ${{ needs.changes.outputs.server == 'true' }} runs-on: ubuntu-latest permissions: contents: read @@ -50,6 +78,8 @@ jobs: platforms: linux/amd64,linux/arm64 build-and-push-chart: + needs: changes + if: ${{ needs.changes.outputs.chart == 'true' }} runs-on: ubuntu-latest permissions: contents: read @@ -87,6 +117,8 @@ jobs: build-and-push-CR: + needs: changes + if: ${{ needs.changes.outputs.CR == 'true' }} runs-on: ubuntu-latest permissions: contents: read @@ -120,4 +152,42 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + + build-and-push-web: + needs: changes + if: ${{ needs.changes.outputs.web == 'true' }} + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + file: Dockerfile-web + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 \ No newline at end of file diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 2cd9840..d631cf6 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -1,13 +1,35 @@ -name: Deploy docs +name: Deploy docs + on: push: branches: - master - main + permissions: contents: write + jobs: + changes: + name: detect what files changed + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + docs: ${{ steps.filter.outputs.docs }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + docs: + - 'docs/**' + - 'mkdocs.yml' + deploy: + needs: changes + if: ${{ needs.changes.outputs.docs == 'true' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4