name: build-linode-img
run-name: ${{ github.actor }} - build-linode-img
on:
  schedule:
    - cron: '0 4 1,15 * *'
    # “At 02:00 on day-of-month 1 and 15.”
    
jobs:
  build-linode-img:
    runs-on: docker
    container: 
      image: alpine:edge
    steps:
    - name:  "Setup Runner"
      run: |
        apk update
        apk add git nodejs nix --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/
    - uses: actions/checkout@v3
    - name: "Directory Structure"
      run: | 
        ls ${{ github.workspace }}/*
    - name: "Runner:  Node Info"
      run: |
        id
        uname -a
        hostname
        cat /etc/os-release
    - name: "Nix Version"
      run:  | 
        nix --version
    - name: "Nix build"
      run: | 
        echo "Running Nix Build"
        nix --extra-experimental-features "nix-command flakes" \
          build ${{ github.workspace }}/#imageConfigurations.nixos-linode-img
    - name: "Results"
      run: | 
        echo "Results:"
        ls -lah result/*

    - if: always()
      run:  rm -rf /.cache
    - if: always()
      run: rm -rf ${{ github.workspace }}
    - if: failure()
      uses:  https://git.sysctl.io/actions/gotify-action@master
      with:
        gotify_api_base: '${{ secrets.GOTIFY_URL }}'
        gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}'
        notification_title: '[ ${{ github.repository }}: ${{ github.workflow }} ] Build Failed'
        notification_message: 'Your build has failed.  Check Forgejo.'
      name:  "Send Notification"