name: docker
on:
  push:
    branches:
      - develop
  schedule:
    - cron: '0 0 * * 0'
jobs:
  build_images:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        image: ['', '-slim', '-nightly', '-nightly-slim']
        branch: ['master', 'develop']
    steps:
      - uses: actions/checkout@v3
        with:
          ref: ${{ matrix.branch }}
      - name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: build_image
        run: |
          if [[ "${{ matrix.branch }}" = "master" ]]; then 
            export NAME="latest" 
          else 
            export NAME="${{ matrix.branch }}"
          fi \
          && docker build -t xd009642/tarpaulin:$NAME${{ matrix.image }} -f Dockerfile${{ matrix.image}} . \
          && docker push xd009642/tarpaulin:$NAME${{ matrix.image }} 
      - uses: oprypin/find-latest-tag@v1
        id: tarpaulin
        with:
          repository: xd009642/tarpaulin
          releases-only: true
        if: matrix.branch == 'master'
      - name: checkout_last_release
        uses: actions/checkout@v3
        with:
          ref: ${{ steps.tarpaulin.outputs.tag }}
        if: matrix.branch == 'master'
      - name: build_last_release
        run: | 
          docker build -t xd009642/tarpaulin:${{ steps.tarpaulin.outputs.tag }}${{ matrix.image }} -f Dockerfile${{ matrix.image}} . \
          && docker push xd009642/tarpaulin:${{ steps.tarpaulin.outputs.tag }}${{ matrix.image }} \
        if: matrix.branch == 'master'