From 90d4550cdb28f17492483c6a76b3b7ef218b62f9 Mon Sep 17 00:00:00 2001 From: Sascha Nowak Date: Mon, 8 Jul 2024 08:57:22 +0200 Subject: [PATCH] feat: Add workflows for postgres and solr --- .github/workflows/postgres.yml | 71 ++++++++++++++++++++++++++++++++++ .github/workflows/solr.yml | 70 +++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 .github/workflows/postgres.yml create mode 100644 .github/workflows/solr.yml diff --git a/.github/workflows/postgres.yml b/.github/workflows/postgres.yml new file mode 100644 index 0000000..24089d2 --- /dev/null +++ b/.github/workflows/postgres.yml @@ -0,0 +1,71 @@ +name: 'Build postgres docker image' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + schedule: + - cron: 0 7 * * THU + push: + branches: + - main + paths: + - postgres/** + pull_request: + branches: + - main + paths: + - postgres/** + workflow_dispatch: + inputs: {} + +jobs: + build-docker-image: + name: 'Build postgres-${{ matrix.image.version }} docker image' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + max-parallel: 10 + matrix: + image: + - file: 12.Dockerfile + - file: 14.Dockerfile + - file: Dockerfile + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Read version from Dockerfile + id: docker + run: echo "version=$(./extract-version.sh ./postgres/Dockerfile)" >> $GITHUB_OUTPUT + + - name: Login to GHCR + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push (postgres-fpm) + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: ./postgres + target: postgres + file: ./postgres/${{ matrix.image.file || 'Dockerfile' }} + push: ${{ github.event_name != 'pull_request' }} + tags: ghcr.io/netlogix/docker/postgres:${{ steps.docker.outputs.version }} + platforms: linux/amd64,linux/arm64 + cache-from: type=gha, scope=${{ github.workflow }}-postgres + cache-to: type=gha, scope=${{ github.workflow }}-postgres, mode=max + diff --git a/.github/workflows/solr.yml b/.github/workflows/solr.yml new file mode 100644 index 0000000..45d552b --- /dev/null +++ b/.github/workflows/solr.yml @@ -0,0 +1,70 @@ +name: 'Build solr docker image' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + schedule: + - cron: 0 7 * * THU + push: + branches: + - main + paths: + - solr/** + pull_request: + branches: + - main + paths: + - solr/** + workflow_dispatch: + inputs: {} + +jobs: + build-docker-image: + name: 'Build solr-${{ matrix.image.version }} docker image' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + max-parallel: 10 + matrix: + image: + - file: 8.Dockerfile + - file: Dockerfile + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Read version from Dockerfile + id: docker + run: echo "version=$(./extract-version.sh ./solr/Dockerfile)" >> $GITHUB_OUTPUT + + - name: Login to GHCR + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push (solr-fpm) + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: ./solr + target: solr + file: ./solr/${{ matrix.image.file || 'Dockerfile' }} + push: ${{ github.event_name != 'pull_request' }} + tags: ghcr.io/netlogix/docker/solr:${{ steps.docker.outputs.version }} + platforms: linux/amd64,linux/arm64 + cache-from: type=gha, scope=${{ github.workflow }}-solr + cache-to: type=gha, scope=${{ github.workflow }}-solr, mode=max +