name: Build OS image of current master

on:
  push:
    branches:
      - master

jobs:
  build:

    runs-on: ubuntu-20.04

    steps:
    - name: Run apt update
      run: sudo apt update

    - name: Install dependencies
      run: sudo apt -y install quilt qemu-user-static debootstrap libarchive-tools jq

    - name: Nuke current Docker installation
      run: |
        sudo systemctl stop docker
        sudo apt-get purge docker-ce docker-ce-cli containerd.io moby-engine moby-cli
        sudo rm -rf /var/lib/docker
    - name: Re-install Docker
      run: |
        curl -fsSL https://get.docker.com -o get-docker.sh
        sudo sh get-docker.sh
        docker --version
    - name: Enable experimental features in Docker
      run: |
        sudo rm -rf /etc/docker/daemon.json
        echo '{"experimental": true}' | sudo tee -a /etc/docker/daemon.json
        sudo systemctl restart docker
    - name: Download Umbrel OS build scripts
      run: |
        git clone git://github.com/getumbrel/umbrel-os.git
    - name: Setting env vars
      run: |
        UMBREL_OS_VERSION="dev"
        IMAGE_NAME="umbrel-os-dev"
        UMBREL_REPO="https://github.com/getumbrel/umbrel.git"
        UMBREL_BRANCH="master"
        echo "UMBREL_OS_VERSION=$UMBREL_OS_VERSION" >> $GITHUB_ENV
        echo "IMAGE_NAME=$IMAGE_NAME">> $GITHUB_ENV
        echo "UMBREL_REPO=$UMBREL_REPO">> $GITHUB_ENV
        echo "UMBREL_BRANCH=$UMBREL_BRANCH" >> $GITHUB_ENV
              
    - name: Build Umbrel OS
      run: |
        cd umbrel-os
        echo "Building $IMAGE_NAME"
        sudo IMG_FILENAME=$IMAGE_NAME ZIP_FILENAME=$IMAGE_NAME UMBREL_OS_VERSION=$UMBREL_OS_VERSION UMBREL_REPO=$UMBREL_REPO UMBREL_BRANCH=$UMBREL_BRANCH ./build.sh
        cd ..
        
    - name: Copy ZIP to current working dir
      run: cp umbrel-os/deploy/*.zip ./

    - name: Uploading artifacts
      uses: actions/upload-artifact@v2
      with:
        path: ${{ env.IMAGE_NAME }}.zip
        name: ${{ env.IMAGE_NAME }}.zip