name: build-latest on: # workflow_dispatch: # inputs: # distro: # description: Base image distro # required: true # default: debian # imageVersion: # description: Base distro image version/release # required: true # default: bullseye # imageVariant: # description: Base image variant # required: true # default: slim workflow_dispatch: pull_request: branches: - develop push: branches: - develop jobs: run-scenario-tests: runs-on: ubuntu-latest strategy: matrix: postgresMajorVersion: - 15 postgisMajorVersion: - 3 postgisMinorRelease: - 3 scenario: - datadir_init - streaming_replication - collations - extensions - logical_replication include: - distro: debian imageVersion: bullseye imageVariant: slim steps: - uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build image for testing id: docker_build_testing_image uses: docker/build-push-action@v3 with: context: . file: Dockerfile push: false load: true tags: kartoza/postgis:manual-build build-args: | DISTRO=${{ matrix.distro }} IMAGE_VERSION=${{ matrix.imageVersion }} IMAGE_VARIANT=${{ matrix.imageVariant }} LANGS=en_US.UTF-8,id_ID.UTF-8 GENERATE_ALL_LOCALE=0 POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }} cache-from: | type=gha,scope=test type=gha,scope=prod type=gha,scope=base cache-to: type=gha,scope=test target: postgis-test - name: Run scenario test ${{ matrix.scenario }} working-directory: scenario_tests/${{ matrix.scenario }} env: COMPOSE_INTERACTIVE_NO_CLI: 1 PRINT_TEST_LOGS: 1 run: | bash ./test.sh push-internal-pr-images: if: github.event.pull_request.base.repo.url == github.event.pull_request.head.repo.url runs-on: ubuntu-latest needs: [ run-scenario-tests ] strategy: matrix: postgresMajorVersion: - 15 postgisMajorVersion: - 3 postgisMinorRelease: - 3 include: - distro: debian imageVersion: bullseye imageVariant: slim steps: - uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Docker meta id: docker_meta uses: docker/metadata-action@v3 with: images: ${{ secrets.DOCKERHUB_REPO}}/postgis tags: | type=semver,pattern={{version}} type=ref,event=branch type=ref,event=pr - name: Build image for testing id: docker_build_testing_image uses: docker/build-push-action@v3 with: context: . file: Dockerfile push: true tags: | ${{ steps.docker_meta.outputs.tags }}-${{ matrix.postgresMajorVersion }}-${{ matrix.postgisMajorVersion }}.${{ matrix.postgisMinorRelease }} build-args: | DISTRO=${{ matrix.distro }} IMAGE_VERSION=${{ matrix.imageVersion }} IMAGE_VARIANT=${{ matrix.imageVariant }} LANGS=en_US.UTF-8,id_ID.UTF-8 GENERATE_ALL_LOCALE=0 POSTGRES_MAJOR_VERSION=${{ matrix.postgresMajorVersion }} POSTGIS_MAJOR_VERSION=${{ matrix.postgisMajorVersion }} POSTGIS_MINOR_VERSION=${{ matrix.postgresMinorVersion }} cache-from: | type=gha,scope=test type=gha,scope=prod type=gha,scope=base cache-to: type=gha,scope=test target: postgis-test