name: Build Docker Images

on:
  push:
    branches:
      - master
  release:
    types: [published]
  schedule:
    - cron: "0 7 * * *"

jobs:
  images:
    runs-on: ubuntu-latest

    steps:
      - name: checkout sources
        uses: actions/checkout@v5

      - name: Set tag to latest
        if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'schedule'
        run: |
          echo "DOCKER_TAG=latest" >> $GITHUB_ENV

      - name: Set tag to release name
        if: github.event_name == 'release' && startsWith(github.ref, 'refs/tags/')
        run: |
          echo "DOCKER_TAG=${{ github.event.release.tag_name }}" >> $GITHUB_ENV

      - name: Check if DOCKER_TAG is set
        if: env.DOCKER_TAG == ''
        run: |
          echo DOCKER_TAG is not set!
          exit 1

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
        id: buildx
        with:
          install: true

      - name: Login to Docker Hub
        uses: docker/login-action@v3.5.0
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          platforms: linux/amd64,linux/arm/v7,linux/arm64
          push: true
          tags: wpscanteam/wpscan:${{ env.DOCKER_TAG }}
