name: Publish Docker image

on:
  push:
    branches:
      - 'master'
    tags:
      - '*'

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        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: vuls/vuls image meta
        id: oss-meta
        uses: docker/metadata-action@v4
        with:
          images: vuls/vuls
          tags: |
            type=ref,event=tag

      - name: vuls/fvuls image meta
        id: fvuls-meta
        uses: docker/metadata-action@v4
        with:
          images: vuls/fvuls
          tags: |
            type=ref,event=tag

      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: OSS image build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          file: ./Dockerfile
          push: true
          tags: |
            vuls/vuls:latest
            ${{ steps.oss-meta.outputs.tags }}
          secrets: |
            "github_token=${{ secrets.GITHUB_TOKEN }}"
          platforms: linux/amd64,linux/arm64

      - name: FutureVuls image build and push
        uses: docker/build-push-action@v2
        with:
          context: .
          file: ./contrib/Dockerfile
          push: true
          tags: |
            vuls/fvuls:latest
            ${{ steps.fvuls-meta.outputs.tags }}
          secrets: |
            "github_token=${{ secrets.GITHUB_TOKEN }}"
          platforms: linux/amd64,linux/arm64
