Files
scripts/.github/workflows/maintain-runners.yml
dependabot[bot] 3f93746a4b Bump geekyeggo/delete-artifact from 1 to 2 (#30)
Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 1 to 2.
- [Release notes](https://github.com/geekyeggo/delete-artifact/releases)
- [Commits](https://github.com/geekyeggo/delete-artifact/compare/v1...v2)

---
updated-dependencies:
- dependency-name: geekyeggo/delete-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-17 20:39:09 +02:00

152 lines
5.5 KiB
YAML

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"