name: build and push images on: push: branches: ['master'] jobs: build-and-push-image: runs-on: ubuntu-latest strategy: matrix: include: - { postgres: 10, alpine: '3.8' } - { postgres: 11, alpine: '3.10' } - { postgres: 12, alpine: '3.12' } - { postgres: 13, alpine: '3.14' } - { postgres: 14, alpine: '3.16' } steps: - name: Checkout repository uses: actions/checkout@v2 - name: Log in to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push Docker image uses: docker/build-push-action@v2 with: context: . push: true tags: ${{ github.repository }}:${{ matrix.postgres }} build-args: | ALPINE_VERSION=${{ matrix.alpine }}