name: Maintain Runners on: workflow_dispatch: workflow_call: inputs: checking: required: false type: boolean secrets: KEY_TORRENTS: required: true KNOWN_HOSTS_UPLOAD: required: true jobs: Prepare: name: Prepare runs-on: Linux if: ${{ github.repository_owner == 'armbian' }} outputs: matrix: ${{steps.list_dirs.outputs.matrix}} steps: - name: Runner prepare uses: armbian/actions/runner-prepare@main - name: Download changes if: ${{ inputs.checking }} uses: actions/download-artifact@v3 with: name: changes - name: Delete control artefact uses: geekyeggo/delete-artifact@v2 if: ${{ inputs.checking }} with: name: changes - name: Checkout repository uses: actions/checkout@v3.1.0 with: fetch-depth: 0 repository: armbian/build path: build ref: nightly clean: true - name: Install SSH key for storage uses: shimataro/ssh-key-action@v2 with: key: ${{ secrets.KEY_TORRENTS }} known_hosts: ${{ secrets.KNOWN_HOSTS_UPLOAD }} if_key_exists: replace - name: Clean upload folder run: | # mount deploy target sudo apt-get -y -qq install sshfs sudo mkdir -p /root/.ssh/ sudo cp ~/.ssh/known_hosts /root/.ssh/ sudo mkdir -p build/output/tmp || true sudo sshfs upload@users.armbian.com:/ build/output/tmp -o IdentityFile=~/.ssh/id_rsa -o reconnect -o allow_other sudo rm -rf build/output/tmp/debs/* || true sudo rm -rf build/output/tmp/debs-beta/* || true sudo rm -rf build/output/tmp/images/* || true sudo mountpoint -q build/output/debs && sudo fusermount -u build/output/debs || true sudo mountpoint -q build/output/tmp && sudo fusermount -u build/output/tmp || true - name: Prepare matrix id: list_dirs run: | MATRIX="seq -w 01 100" [[ -s changes ]] || unset MATRIX echo ::set-output name=matrix::$(for x in $(eval $MATRIX); do echo $x; done|jq -cnR '[inputs | select(length>0)]' | jq) Purge: needs: [ Prepare ] runs-on: [Linux] #if: ${{ needs.Prepare.outputs.matrix != '[]' && needs.Prepare.outputs.matrix != '' }} timeout-minutes: 480 strategy: fail-fast: false matrix: node: ${{fromJson(needs.Prepare.outputs.matrix)}} steps: - name: Runner prepare uses: armbian/actions/runner-prepare@main - name: Upgrading run: | # clean strange keys if present sudo rm -rf /root/.gnupg sudo rm -rf $HOME/.gnupg #sudo sed -i 's/jammy/hirsute/g' /etc/apt/sources.list #sudo apt-get update #sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade -y FROM_RELEASE=hirsute TO_RELEASE=jammy curl -fsSL https://github.com/armbian/build/raw/master/config/desktop/_all_distributions/appgroups/programming/sources/apt/githubcli.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg sudo wget https://apt.armbian.com/armbian.key -O key sudo gpg --dearmor < key | sudo tee /usr/share/keyrings/armbian.gpg > /dev/null sudo chmod go+r /usr/share/keyrings/armbian.gpg sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg sudo echo "deb [signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] http://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/githubcli.list sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/armbian.gpg] http://apt.armbian.com $TO_RELEASE main ${TO_RELEASE}-utils ${TO_RELEASE}-desktop" | sudo tee /etc/apt/sources.list.d/armbian.list sudo sed -i 's/continue/pass/g' /usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py || true sudo sed -i 's/'$FROM_RELEASE'/'$TO_RELEASE'/g' /etc/apt/sources.list sudo rm -f /etc/apt/sources.list.d/docker.list sudo apt-get update sudo apt-get upgrade #sudo apt-get -y install gh npm nodejs #sudo npm install json --global || true #echo "Upgrade distro" #sudo do-release-upgrade #sudo apt-get update #sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade -y #sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -y #sudo DEBIAN_FRONTEND=noninteractive apt-get install -f -y sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y sudo shutdown -r +2 || true - name: Checkout Armbian build script uses: actions/checkout@v3.1.0 with: fetch-depth: 0 repository: armbian/build path: build clean: false - name: Ignore changes run: | [[ -d build ]] && sudo touch build/.ignore_changes || true Finish: name: Finish needs: [Purge] runs-on: [self-hosted, Linux, small] if: ${{ github.repository_owner == 'Armbian' }} steps: - name: Run script run: | echo "Finish"