name: Build x86
permissions:
  actions: none
  checks: none
  contents: none
  deployments: none
  issues: none
  packages: none
  pull-requests: none
  repository-projects: none
  security-events: none
  statuses: none
      
on:
  workflow_dispatch:

env:
  BROMITE_SHA: 2e1849a8e357e0ebbcd84cb88a8556be738c08a8

jobs:
  check_images:
    runs-on: self-hosted
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2
        with:
          path: bromite-buildtools
          fetch-depth: 1
          
      - name: Get current chromium version
        shell: bash
        run: |
          mkdir bromite
          cd bromite
          git init
          git remote add origin https://github.com/uazo/bromite
          git fetch origin $BROMITE_SHA
          git reset --hard FETCH_HEAD
          cd ..
          
          export VERSION=$( cat ./bromite/build/RELEASE )
          rm -rf bromite
          
          echo Current version is $VERSION
          echo "VERSION=$VERSION" >> $GITHUB_ENV
          
          cd bromite-buildtools
          
      - name: Checking build-deps for ${{ env.VERSION }}
        shell: bash
        run: |
          IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$VERSION > /dev/null ; echo $?)
          if [ $IS_PRESENT -ne "0" ]; then
            IS_PRESENT=$(docker manifest inspect uazo/build-deps:$VERSION > /dev/null ; echo $?)
            if [ $IS_PRESENT -ne "0" ]; then
              DOCKER_BUILDKIT=1 docker build -t uazo/build-deps:$VERSION \
                --progress plain \
                --build-arg VERSION=$VERSION \
                --no-cache \
                bromite-buildtools/images/build-deps/.
            fi
          fi
        
      - name: Checking chromium for ${{ env.VERSION }}
        shell: bash
        run: |
          IS_PRESENT=$(docker inspect --type=image uazo/chromium:$VERSION > /dev/null ; echo $?)
          if [ $IS_PRESENT -ne "0" ]; then
            IS_PRESENT=$(docker manifest inspect uazo/chromium:$VERSION > /dev/null ; echo $?)
            if [ $IS_PRESENT -ne "0" ]; then
              DOCKER_BUILDKIT=1 docker build -t uazo/chromium:$VERSION \
                --progress plain \
                --build-arg VERSION=$VERSION \
                bromite-buildtools/images/chr-source/.
            fi
          fi

      - name: Checking bromite for ${{ env.BROMITE_SHA }}
        shell: bash
        run: |
          IS_PRESENT=$(docker inspect --type=image uazo/bromite:$BROMITE_SHA > /dev/null ; echo $?)
          if [ $IS_PRESENT -ne "0" ]; then
            IS_PRESENT=$(docker manifest inspect uazo/bromite:$BROMITE_SHA > /dev/null ; echo $?)
            if [ $IS_PRESENT -ne "0" ]; then
              DOCKER_BUILDKIT=1 docker build -t uazo/bromite:$BROMITE_SHA --progress plain \
                --build-arg BROMITE_SHA=$BROMITE_SHA \
                --build-arg VERSION=$VERSION \
                bromite-buildtools/images/bromite-source/.
            fi
          fi
          
      - name: Checking bromite-build for ${{ env.BROMITE_SHA }}
        shell: bash
        run: |
          IS_PRESENT=$(docker inspect --type=image uazo/bromite-build:$BROMITE_SHA > /dev/null ; echo $?)
          if [ $IS_PRESENT -ne "0" ]; then
            IS_PRESENT=$(docker manifest inspect uazo/bromite-build:$BROMITE_SHA > /dev/null ; echo $?)
            if [ $IS_PRESENT -ne "0" ]; then
              DOCKER_BUILDKIT=1 docker build -t uazo/bromite-build:$BROMITE_SHA --progress plain \
                --build-arg BROMITE_SHA=$BROMITE_SHA \
                bromite-buildtools/images/bromite-build/.
            fi
          fi
          
  build:
    runs-on: self-hosted
    needs: check_images
    if: success()

    services:
      redis:
        image: redis
        options: >-
          --health-cmd "redis-cli ping"
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5    
      gomaserver:
        image: uazo/goma-server
        #ports: 
        #  - 5050:5050
        volumes: 
          - /tmp/proxy:/tmp/proxy
        env:
          REDISHOST: redis
          REMOTEEXEC_ADDR: ${{ secrets.REMOTEEXEC_ADDR }}
          
    container:
      image: uazo/bromite-build:2e1849a8e357e0ebbcd84cb88a8556be738c08a8 #${{ env.BROMITE_SHA }}
      env:
        SERVER_HOST_GOMA: gomaserver
      volumes:
        - /storage/bromite/${{ github.sha }}:/home/lg/working_dir/artifacs
        - /tmp/proxy:/tmp/proxy

    steps:
      - name: Build Bromite
        shell: bash
        run: |
          cd /home/lg/working_dir/
          export WORKSPACE=/home/lg/working_dir
          ./start-build.sh
