name: Build OS image on PR on: [pull_request] jobs: build: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Setting env vars env: PR: ${{ github.event.number }} run: | UMBREL_OS_VERSION="dev" IMAGE_NAME="umbrel-os-dev" UMBREL_REPO="$(curl -s https://api.github.com/repos/getumbrel/umbrel/pulls/${PR} | jq .head.repo.clone_url | sed 's/"//g')" TMP=$(git show HEAD | head -n 2 | tail -n 1) UMBREL_BRANCH=${TMP:15:7} echo "Building commit $UMBREL_BRANCH of $UMBREL_REPO" 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: 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 | sudo 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: 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