name: Get values on: workflow_dispatch: push: schedule: - cron: "*/30 * * * *" jobs: Prepare: runs-on: ubuntu-latest name: Enable test system outputs: matrix: ${{steps.list_dirs.outputs.matrix}} steps: - name: Checkout Armbian support scripts uses: actions/checkout@v3.1.0 with: fetch-depth: 1 repository: armbian/scripts path: scripts - name: Import GPG key uses: crazy-max/ghaction-import-gpg@v5 with: gpg_private_key: ${{ secrets.GPG_KEY2 }} passphrase: ${{ secrets.GPG_PASSPHRASE2 }} workdir: scripts git_user_signingkey: true git_commit_gpgsign: true - name: Get info from Armbian repository run: | 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 RELEASE=$(cat /etc/os-release | grep UBUNTU_CODENAME | cut -d"=" -f2) sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/armbian.gpg] http://beta.armbian.com $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop" | sudo tee /etc/apt/sources.list.d/armbian.list sudo apt-get update CURRENT=$(apt search --names-only 'linux-image-current' 2> /dev/null | grep version | grep -oE "(\w*[.]\w*)*") EDGE=$(apt search --names-only 'linux-image-edge' 2> /dev/null | grep version | grep -oE "(\w*[.]\w*)*") echo "CURRENT=${CURRENT}" >> $GITHUB_ENV echo "EDGE=${EDGE}" >> $GITHUB_ENV - name: Get runners capacity run: | echo "ABc= $CURRENT $EDGE" sudo apt-get -y install datamash LIST=$(curl -H "Authorization: Token ${{ secrets.NETBOX_TOKEN }}" -H "Accept: application/json; indent=4" \ "https://stuff.armbian.com/netbox/api/virtualization/virtual-machines/?limit=500&name__empty=false&tag=github-runner" \ | jq -r '.results[] | .display, .vcpus, .memory, .cluster.name, .tenant.name' | sed -e 's/^\|$/"/g' \ | xargs -n5 -d'\n' | sed -e 's/\" \"/\",\"/g' | tr -d '"' | sed "s/,/\t/g" | datamash --sort -g 4 sum 2,3 --output-delimiter=,) (echo "CPU|MEM"; echo "$LIST" | sed "s/,/\t/g" | datamash --sort sum 2,3 | sed "s/\t/|/g") | jq -Rn ' ( input | split("|") ) as $keys | ( inputs | split("|") ) as $vals | [[$keys, $vals] | transpose[] | {key:.[0],value:.[1]}] | from_entries ' > runners_capacity.json # add kernel versions to JSON jq '.CURRENT += "'${{ env.CURRENT }}'"' runners_capacity.json > tmp_current.json jq '.EDGE += "'${{ env.EDGE }}'"' tmp_current.json > tmp_edge.json cp tmp_edge.json runners_capacity.json cat runners_capacity.json echo "|Donated by      | Virtual CPU cores |Memory     |" > label.tmp echo "|--|--:|--:|" >> label.tmp curl -H "Authorization: Token ${{ secrets.NETBOX_TOKEN }}" -H "Accept: application/json; indent=4" \ "https://stuff.armbian.com/netbox/api/virtualization/virtual-machines/?limit=500&name__empty=false&tag=github-runner" \ | jq -r '.results[] | .display, .vcpus, .memory, .cluster.name, .tenant.name' | sed -e 's/^\|$/"/g' \ | xargs -n5 -d'\n' | sed -e 's/\" \"/\",\"/g' | tr -d '"' | sed "s/,/\t/g" | datamash --sort -g 5 sum 2,3 --output-delimiter=, \ | LC_ALL=C awk -F , -v OFS=\| '$3/=1024' | cut -d"." -f1 | sed -e 's/$/ Gb/g' | sed -e 's/^\|$/|/g' >> label.tmp # header and footer are edited at GitHub cat scripts/.github/header.inc > scripts/README.md echo -en "\n\n" >> scripts/README.md cat label.tmp >> scripts/README.md cat scripts/.github/footer.inc >> scripts/README.md - name: "Upload status" uses: ncipollo/release-action@v1 with: artifacts: "runners_capacity.json" tag: "status" omitBody: true omitName: true allowUpdates: true token: ${{ secrets.GITHUB_TOKEN }} - name: Update scripts run: | cd scripts sudo chown -R $USER:$USER .git if git status --porcelain | grep .; then git config --global user.email "info@armbian.com" git config --global user.name "Armbianworker" git config pull.rebase false git pull git add . git commit --allow-empty -m "Update runners status" git push fi