name: Docker Image CI

on:
  push:
    branches: [ master, release, develop ]
  pull_request:
    branches: [ master ]
    
env:
  IMAGE_NAME: crawlabteam/crawlab
  
jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Build image
      run: docker build . --file Dockerfile --tag image
        
    - name: Log into registry
      run: echo ${{ secrets.DOCKER_PASSWORD}} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin

    - name: Push image
      run: |
        IMAGE_ID=$IMAGE_NAME

        # Strip git ref prefix from version
        VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')

        # Strip "v" prefix from tag name
        [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')

        # Use Docker `latest` tag convention
        [ "$VERSION" == "master" ] && VERSION=latest

        echo IMAGE_ID=$IMAGE_ID
        echo VERSION=$VERSION

        docker tag image $IMAGE_ID:$VERSION
        docker push $IMAGE_ID:$VERSION
