# --------------------------------------------------------------------------------------------
# This file is generated. Do not edit manually
# --------------------------------------------------------------------------------------------
name: Docker image Community
'on':
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+'
      - 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
jobs:
  build:
    runs-on: '${{ matrix.os }}'
    strategy:
      matrix:
        os:
          - ubuntu-22.04
    steps:
      - name: Context
        env:
          GITHUB_CONTEXT: '${{ toJson(github) }}'
        run: echo "$GITHUB_CONTEXT"
      - uses: actions/checkout@v2
        with:
          fetch-depth: 1
      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v4
        with:
          images: dbgate/dbgate
          flavor: |
            latest=false
          tags: |
            type=raw,value=beta,enable=${{ contains(github.ref_name, '-docker.') || contains(github.ref_name, '-beta.') }}

            type=match,pattern=\d+.\d+.\d+,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
            type=raw,value=latest,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
      - name: Docker alpine meta
        id: alpmeta
        uses: docker/metadata-action@v4
        with:
          images: |
            dbgate/dbgate
          flavor: |
            latest=false
          tags: |
            type=raw,value=beta-alpine,enable=${{ contains(github.ref_name, '-docker.') || contains(github.ref_name, '-beta.') }}

            type=match,pattern=\d+.\d+.\d+,suffix=-alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
            type=raw,value=alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
      - name: Use Node.js 18.x
        uses: actions/setup-node@v1
        with:
          node-version: 18.x
      - name: adjustPackageJson
        run: |

          node adjustPackageJson --community
      - name: yarn install
        run: |

          # yarn --version
          # yarn config set network-timeout 300000
          yarn install
      - name: setCurrentVersion
        run: |

          yarn setCurrentVersion
      - name: printSecrets
        run: |

          yarn printSecrets
        env:
          GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
      - name: Prepare docker image
        run: |

          yarn run prepare:docker
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: '${{ secrets.DOCKER_USERNAME }}'
          password: '${{ secrets.DOCKER_PASSWORD }}'
      - name: Build and push
        uses: docker/build-push-action@v3
        with:
          push: true
          context: ./docker
          tags: '${{ steps.meta.outputs.tags }}'
          platforms: 'linux/amd64,linux/arm64,linux/arm/v7'
      - name: Build and push alpine
        uses: docker/build-push-action@v3
        with:
          push: true
          context: ./docker
          file: ./docker/Dockerfile-alpine
          tags: '${{ steps.alpmeta.outputs.tags }}'
          platforms: 'linux/amd64,linux/arm64,linux/arm/v7'
