Skip to content

zUpgrade

zUpgrade #21

Workflow file for this run

# ATTRIBUTION-AI: Some code here may have been generated by Github Copilot Chat, ChatGPT, or other LLM, etc. Usually, there will be a comment acknowledging this in files this file was derived from, or in previous versions of this file. Moreover, it is reasonable simply to state AI may have partially written some code in this file, and that any AI generated code is minimal, obvious, could not have been written any other way, deals solely with GitHub APIs, etc...
# Comments, unused code, etc, have unusually been kept minimal in this file, to distract less from understaning the flow of jobs, which is already somewhat more difficult to see plainly in YML scripting.
# ATTENTION: All qemu/KVM functionality is normally not used, and may be untested. Any 'bootOnce' feature should instead ALWAYS be integrated in upstream 'ubdist/OS'.
# ONLY possible use case for a derivative OS 'bootOnce' is to reconfigure FW for VERY unusual and limited Internet purposes related to re/establishing supply chain integrity (eg. to set write-once SECRETS signing keys for GitHub Actions, etc).
# Usually it is far more important to frequently build an updated 'live' dist/OS with the latest Linux kernel, etc, both to use immediately, and to save older versions as untampered backup copies. The fragility of an additional 'bootOnce' would be very inconsistnt with that purpose.
# WARNING: May be untested .
# WARNING: As much as ~100GB temporary storage may be required.
# https://docs.github.com/en/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners
# ubuntu-latest-m 4vCPU 16GB_RAM 150GB_disk
# ubuntu-latest-l 8vCPU 32GB_RAM 300GB_disk
# ubuntu-latest-h 32vCPU 128GB_RAM 1200GB_disk
name: zUpgrade
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
permissions:
actions: write
checks: read
contents: write
deployments: read
issues: none
packages: read
pull-requests: read
repository-projects: read
security-events: none
statuses: read
on:
#push:
workflow_dispatch:
inputs:
releaseOrigin:
required: false
default: soaringDistributions/ubDistBuild
type: choice
options:
#- DEFAULT
- soaringDistributions/ubDistBuild
#- soaringDistributions/ubdist_dummy
releaseLabel:
required: false
#default: spring
default: internal
type: choice
options:
- latest
- spring
- internal
- base
upgradeKernel:
required: false
default: lts
type: choice
options:
- lts
- mainline-server
upgradeTimeout:
required: false
default: '45'
type: choice
options:
- '45'
- '300'
DISABLE_RELEASE:
type: boolean
default: true
#DISABLE_ROOTFS:
#type: boolean
#default: false
#devfast:
#type: boolean
#default: true
skimfast:
type: boolean
default: true
qemuNoKVM:
type: boolean
default: true
DISABLE_BOOT:
type: boolean
default: true
runnerName:
required: false
default: ubuntu-latest
type: choice
options:
- ubuntu-latest
- ubuntu-latest-l
- ubuntu-latest-m
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
#schedule:
#- cron: ''
# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_release:
runs-on: ubuntu-latest
steps:
#- name: report! API Rate Limit
#shell: bash
#run: |
#curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
##curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"
- uses: actions/checkout@v3
with:
fetch-depth: 1
#submodules: 'recursive'
- name: release! create
shell: bash
run: |
gh release create build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} --title build_upgrade --notes ""
env:
GH_TOKEN: ${{ github.token }}
- name: report! API Rate Limit
shell: bash
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
#curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"
build_before_noBoot:
#if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
needs: [build_release]
#runs-on: ${{ github.event.inputs.runnerName == '' && 'ubuntu-latest-m' || github.event.inputs.runnerName }}
runs-on: ubuntu-latest
steps:
- name: RAND_SEED
shell: bash
run: |
echo "$RAND_SEED" | tee /dev/urandom > /dev/null
echo "$RAND_SEED" | tee /dev/random > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/urandom > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/random > /dev/null
env:
RAND_SEED: ${{ secrets.RAND_SEED }}
- name: users
shell: bash
run: |
sudo -u ubuntu -n bash -c 'sudo -n useradd runner --non-unique -u $UID -g $UID' || true
sudo -u ubuntu -n bash -c 'sudo -n groupadd runner --non-unique -g $UID' || true
sudo -u runner -n bash -c 'sudo -n echo $USER $UID' || true
true
# https://github.com/easimon/maximize-build-space
- name: Maximize build space
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' && github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 1625
temp-reserve-mb: 50
swap-size-mb: 2
#remove-dotnet: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-dotnet: 'true'
#remove-android: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-android: 'true'
#remove-haskell: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-haskell: 'true'
#remove-codeql: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-codeql: 'true'
#remove-docker-images: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-docker-images: 'true'
- name: Maximize build space ! remove ONLY
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' && ( github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' ) }}
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-large-packages: 'true'
remove-cached-tools: 'true'
remove-swapfile: 'true'
verbose: 'false'
- name: df
shell: bash
run: |
df -h
df -h /
# https://github.com/orgs/community/discussions/8305
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
# https://github.com/actions/runner-images/discussions/7191
- name: Enable KVM group perms
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
shell: bash
run: |
#echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo -n tee /etc/udev/rules.d/99-kvm4all.rules
echo 'KERNEL=="kvm", GROUP="docker", MODE="0664", OPTIONS+="static_node=kvm"' | sudo -n tee /etc/udev/rules.d/99-kvm4all.rules
sudo -n udevadm control --reload-rules
sudo -n udevadm trigger --name-match=kvm
sudo -n apt-get update
sudo -n apt-get install -y libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils qemu qemu-system-x86
sudo -n usermod -a -G kvm $USER
sudo -n usermod -a -G libvirt $USER
sudo -n usermod -a -G docker $USER
sudo -n adduser $USER kvm
#sudo -n chown -R $USER:kvm /dev/kvm
sudo -n chown -R $USER:docker /dev/kvm
ls -l /dev/kvm
ls -l /dev/kvm*
echo $USER
groups
sudo -n lsmod | grep kvm
sudo -n modprobe -r kvm_intel
sudo -n modprobe -r kvm_amd
sudo -n modprobe -r kvm
( grep --color vmx /proc/cpuinfo && sudo -n modprobe kvm_intel ) || ( grep --color svm /proc/cpuinfo && sudo -n modprobe kvm_amd )
sudo -n modprobe kvm
sudo -n lsmod | grep kvm
#sudo -n chown -R $USER:kvm /dev/kvm
sudo -n chown -R $USER:docker /dev/kvm
ls -l /dev/kvm
ls -l /dev/kvm*
- name: Check KVM group perms
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
shell: bash
run: |
grep --color svm /proc/cpuinfo || true
grep --color vmx /proc/cpuinfo || true
sudo -n lsmod | grep kvm
ls -l /dev/kvm
ls -l /dev/kvm*
echo $USER
groups
- name: _getCore_ub
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
timeout-minutes: 90
run: |
mkdir -p ~/core/infrastructure
cd ~/core/infrastructure
#git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
cd ubiquitous_bash
./_setupUbiquitous.bat
- uses: actions/checkout@v3
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
with:
submodules: recursive
- name: _getMinimal_cloud
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
#! ./ubiquitous_bash.sh _getMinimal_cloud_ubDistBuild_noBoot && exit 1
! ./ubiquitous_bash.sh _getMinimal_cloud && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 355
- name: _getMost-xvfb
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
#! ./ubiquitous_bash.sh _getMost && exit 1
#true
#! sudo -n apt-get -y clean && exit 1
#! ./ubiquitous_bash.sh _getMost_debian11_aptSources && exit 1
#sudo -n apt-get update
#! sudo -n apt-get -d install -y virtualbox-7.0 && exit 1
#! sudo -n ./ubiquitous_bash.sh _getMost_ubuntu22-VBoxManage && exit 1
sudo -n env DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends -y xvfb
sudo -n env DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends -y x11-apps
df -h
df -h /
timeout-minutes: 355
- name: _test_hash_legacy
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
if [[ -e "/etc/ssl/openssl_legacy.cnf" ]]
then
echo -n | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
else
echo -n | openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
fi
- name: mkdir _local
shell: bash
run: |
mkdir -p ./_local
- name: _true
if: ${{ github.event.inputs.skimfast != 'true' }}
shell: bash
run: |
./_true | sudo -n tee ./_local/_true.log && exit ${PIPESTATUS[0]}
- name: _false
if: ${{ github.event.inputs.skimfast != 'true' }}
shell: bash
run: |
( ! ./_false ) | sudo -n tee ./_local/_false.log && exit ${PIPESTATUS[0]}
- name: lscpu
#if: ${{ github.event.inputs.skimfast != 'true' }}
shell: bash
run: |
lscpu
- name: cpuinfo
if: ${{ github.event.inputs.skimfast != 'true' }}
shell: bash
run: |
cat /proc/cpuinfo
- name: sev/AMD
shell: bash
run: |
cat /proc/cpuinfo | grep 'model name'
echo
echo 'cat /sys/module/kvm_amd/parameters/sev'
cat /sys/module/kvm_amd/parameters/sev || true
echo 'dmesg | grep -i sev'
sudo -n dmesg | grep -i sev || true
true
- name: sgx/Intel
shell: bash
run: |
cat /proc/cpuinfo | grep 'model name'
echo
echo 'grep sgx /proc/cpuinfo'
grep sgx /proc/cpuinfo || true
echo 'dmesg | grep sgx'
sudo -n dmesg | grep -i sgx || true
# Apparently normal: ' sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0. '
true
- name: _get_vmImg_ubDistBuild
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
current_releaseOrigin="${{ inputs.releaseOrigin }}"
#( [[ "$current_releaseOrigin" == "" ]] || [[ "$current_releaseOrigin" == "DEFAULT" ]] ) && current_releaseOrigin=$(head -n1 ./.github/workflows/DEFAULT_releaseOrigin.txt)
[[ "$current_releaseOrigin" == "" ]] && current_releaseOrigin="soaringDistributions/ubDistBuild"
current_releaseLabel="${{ inputs.releaseLabel }}"
#[[ "$current_releaseLabel" == "" ]] && current_releaseLabel="base"
[[ "$current_releaseLabel" == "" ]] && current_releaseLabel="latest"
[[ "$current_releaseLabel" == "latest" ]] && current_releaseLabel=""
#export FORCE_AXEL=8
#./ubiquitous_bash.sh _get_vmImg_ubDistBuild "latest"
# DANGER: Github Actions (strictly internal) ONLY!
export FORCE_AXEL=8
export MANDATORY_HASH="true"
cd ./_local
rm -f hash-download.txt
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "$current_releaseOrigin" "$current_releaseLabel" "package_image.tar.flx" 2> /dev/null | tee >(../ubiquitous_bash.sh _get_extract_ubDistBuild-tar --extract ./vm.img --to-stdout | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256 > hash-download.txt) | ../ubiquitous_bash.sh _get_extract_ubDistBuild
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: fallocate --dig-holes
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _hash_img
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
export skimfast=${{ github.event.inputs.skimfast }}
echo $skimfast
#./ubiquitous_bash.sh _hash_img
cat _local/hash-download.txt
- name: zSpecial_report-delete
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
! ./ubiquitous_bash.sh _openChRoot && exit 1
./ubiquitous_bash.sh _chroot rm -f /dpkg
./ubiquitous_bash.sh _chroot rm -f /lsmodReport
./ubiquitous_bash.sh _chroot rm -f /binReport
./ubiquitous_bash.sh _chroot rm -f /coreReport
./ubiquitous_bash.sh _chroot rm -f /cfgFW.log
./ubiquitous_bash.sh _chroot rm -f /FW-done
! ./ubiquitous_bash.sh _closeChRoot && exit 1
true
- name: Force KVM group perms
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
shell: bash
run: |
sudo -n ls -l /dev/kvm
sudo -n ls -l /dev/kvm*
sudo -n chown -R $USER:docker /dev/kvm
sudo -n chmod 664 /dev/kvm
echo
#grep --color svm /proc/cpuinfo || true
#grep --color vmx /proc/cpuinfo || true
sudo -n lsmod | grep kvm
ls -l /dev/kvm
ls -l /dev/kvm*
echo $USER
groups
echo
- name: _create_ubDistBuild-bootOnce
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
continue-on-error: true
run: |
export skimfast=${{ github.event.inputs.skimfast }}
echo skimfast $skimfast
[[ "$skimfast" == "" ]] && export skimfast=true
echo skimfast $skimfast
export qemuNoKVM=${{ github.event.inputs.qemuNoKVM }}
#[[ "$qemuNoKVM" == "" ]] && export qemuNoKVM=true
echo qemuNoKVM $qemuNoKVM
echo
export qemuXvfb="true"
echo qemuXvfb "$qemuXvfb"
mkdir -p ./_local/analysis/screenshots
#./ubiquitous_bash.sh _create_ubDistBuild-bootOnce | sudo -n tee ./_local/_create_ubDistBuild-bootOnce.log && exit ${PIPESTATUS[0]}
./ubiquitous_bash.sh _create_ubDistBuild-bootOnce-before_noBoot | sudo -n tee ./_local/_create_ubDistBuild-bootOnce.log && exit ${PIPESTATUS[0]}
#- name: _zSpecial_report
#shell: bash
#continue-on-error: true
#run: |
#./ubiquitous_bash.sh _zSpecial_report
#ls -l ./_local/grub.cfg
#ls -l ./_local/grubenv
#ls -l ./_local/dpkg
#ls -l ./_local/lsmodReport
#ls -l ./_local/binReport
#ls -l ./_local/coreReport
#ls -l ./_local/cfgFW.log
- name: artifacts
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
uses: actions/upload-artifact@v4
with:
name: convert-live-exhaustive---analysis-screenshots-10-fromImg
path: |
./_local/analysis/screenshots/*
#- name: artifacts
#uses: actions/upload-artifact@v4
#with:
#name: convert-live-exhaustive---analysis-log-10-fromImg
#path: |
#./_local/grub.cfg
#./_local/grubenv
#./_local/dpkg
#./_local/lsmodReport
#./_local/binReport
#./_local/coreReport
#./_local/cfgFW.log
- name: check! FAIL_bootOnce
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
! [[ -e ./_local/FAIL_bootOnce ]]
- name: _hash_img
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
export skimfast=${{ github.event.inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _hash_img
- name: release! hash! before_noBoot
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
mv -f ./_local/_hash-ubdist.txt ./_local/_hash-ubdist_before_noBoot.txt
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/_hash-ubdist_before_noBoot.txt
env:
GH_TOKEN: ${{ github.token }}
- name: report! cfgFW
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
! ./ubiquitous_bash.sh _openChRoot && exit 1
sudo -n cp -f "./_local/v/fs"/cfgFW.log "./_local"/cfgFW.log
sudo -n chown "$USER":"$USER" "./_local"/cfgFW.log
cat ./_local/cfgFW.log
rm -f ./_local/cfgFW.log
! ./ubiquitous_bash.sh _closeChRoot && exit 1
true
- name: fallocate --dig-holes
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _package_ubDistBuild_image
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
export skimfast=${{ github.event.inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _package_ubDistBuild_image | sudo -n tee ./_local/_package_ubDistBuild_image.log && exit ${PIPESTATUS[0]}
- name: _ubDistBuild_split_before_noBoot
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
./ubiquitous_bash.sh _ubDistBuild_split_before_noBoot | sudo -n tee ./_lib/_ubDistBuild_split_before_noBoot.log && exit ${PIPESTATUS[0]}
timeout-minutes: 355
- name: df
shell: bash
run: |
df -h
df -h /
- name: release! package_image_before_noBoot
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
#gh release create build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} --title build_upgrade --notes ""
bash -c '
for currentFile in ./_local/package_image_before_noBoot.tar.flx.part*
do
./ubiquitous_bash.sh _stopwatch gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} "$currentFile" &
while [[ $(jobs | wc -l) -ge 12 ]]
do
sleep 2
done
done
wait
'
env:
GH_TOKEN: ${{ github.token }}
build:
needs: [build_before_noBoot, build_release]
runs-on: ${{ github.event.inputs.runnerName == '' && 'ubuntu-latest-m' || github.event.inputs.runnerName }}
steps:
- name: RAND_SEED
shell: bash
run: |
echo "$RAND_SEED" | tee /dev/urandom > /dev/null
echo "$RAND_SEED" | tee /dev/random > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/urandom > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/random > /dev/null
env:
RAND_SEED: ${{ secrets.RAND_SEED }}
- name: users
shell: bash
run: |
sudo -u ubuntu -n bash -c 'sudo -n useradd runner --non-unique -u $UID -g $UID' || true
sudo -u ubuntu -n bash -c 'sudo -n groupadd runner --non-unique -g $UID' || true
sudo -u runner -n bash -c 'sudo -n echo $USER $UID' || true
true
# https://github.com/easimon/maximize-build-space
- name: Maximize build space
if: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 1625
temp-reserve-mb: 50
swap-size-mb: 2
#remove-dotnet: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-dotnet: 'true'
#remove-android: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-android: 'true'
#remove-haskell: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-haskell: 'true'
#remove-codeql: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-codeql: 'true'
#remove-docker-images: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-docker-images: 'true'
- name: Maximize build space ! remove ONLY
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-large-packages: 'true'
remove-cached-tools: 'true'
remove-swapfile: 'true'
verbose: 'false'
- name: df
shell: bash
run: |
df -h
df -h /
- name: _getCore_ub
shell: bash
timeout-minutes: 90
run: |
mkdir -p ~/core/infrastructure
cd ~/core/infrastructure
#git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
cd ubiquitous_bash
./_setupUbiquitous.bat
- name: _getMinimal_cloud
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
shell: bash
run: |
! ~/core/infrastructure/ubiquitous_bash/ubiquitous_bash.sh _getMinimal_cloud && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 90
- uses: actions/checkout@v3
with:
submodules: recursive
- name: _getMinimal_cloud
shell: bash
run: |
! ./ubiquitous_bash.sh _getMinimal_cloud_ubDistBuild_noBoot && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 355
- name: _test_hash_legacy
shell: bash
run: |
if [[ -e "/etc/ssl/openssl_legacy.cnf" ]]
then
echo -n | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
else
echo -n | openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
fi
- name: _get_vmImg_ubDistBuild_before_noBoot
if: ${{ github.event.inputs.DISABLE_BOOT != 'true' }}
shell: bash
run: |
#export FORCE_AXEL=8
#./ubiquitous_bash.sh _get_vmImg_ubDistBuild "latest"
# DANGER: Github Actions (strictly internal) ONLY!
#export FORCE_AXEL=8
#export MANDATORY_HASH="true"
cd ./_local
rm -f hash-download.txt
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "${{ github.repository }}" "" "package_image_before_noBoot.tar.flx" 2> /dev/null | tee >(../ubiquitous_bash.sh _get_extract_ubDistBuild-tar --extract ./vm.img --to-stdout | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256 > hash-download.txt) | ../ubiquitous_bash.sh _get_extract_ubDistBuild
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: _get_vmImg_ubDistBuild
if: ${{ github.event.inputs.DISABLE_BOOT == 'true' }}
shell: bash
run: |
current_releaseOrigin="${{ inputs.releaseOrigin }}"
( [[ "$current_releaseOrigin" == "" ]] || [[ "$current_releaseOrigin" == "DEFAULT" ]] ) && current_releaseOrigin=$(head -n1 ./.github/workflows/DEFAULT_releaseOrigin.txt)
[[ "$current_releaseOrigin" == "" ]] && current_releaseOrigin="soaringDistributions/ubDistBuild"
current_releaseLabel="${{ inputs.releaseLabel }}"
#[[ "$current_releaseLabel" == "" ]] && current_releaseLabel="base"
[[ "$current_releaseLabel" == "" ]] && current_releaseLabel="latest"
[[ "$current_releaseLabel" == "latest" ]] && current_releaseLabel=""
#export FORCE_AXEL=8
#./ubiquitous_bash.sh _get_vmImg_ubDistBuild "latest"
# DANGER: Github Actions (strictly internal) ONLY!
export FORCE_AXEL=8
export MANDATORY_HASH="true"
cd ./_local
rm -f hash-download.txt
if [[ ${{ github.event.inputs.DISABLE_RELEASE }} == false ]]
then
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "$current_releaseOrigin" "$current_releaseLabel" "package_image.tar.flx" 2> /dev/null | tee >(../ubiquitous_bash.sh _get_extract_ubDistBuild-tar --extract ./vm.img --to-stdout | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256 > hash-download.txt) | ../ubiquitous_bash.sh _get_extract_ubDistBuild
else
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "$current_releaseOrigin" "$current_releaseLabel" "package_image.tar.flx" 2> /dev/null | ../ubiquitous_bash.sh _get_extract_ubDistBuild
fi
true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: _hash_img
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
#./ubiquitous_bash.sh _hash_img
cat _local/hash-download.txt
- name: fallocate --dig-holes
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _create_ubDistBuild-install-ubDistBuild
shell: bash
run: |
./ubiquitous_bash.sh _create_ubDistBuild-install-ubDistBuild | sudo -n tee ./_create_ubDistBuild-install-ubDistBuild.log && exit ${PIPESTATUS[0]}
- name: scribe! info! github! upgrade
shell: bash
run: |
! ./ubiquitous_bash.sh _openChRoot && exit 1
! echo ${{ github.repository }} | ./ubiquitous_bash.sh _chroot tee /info-github-upgrade && exit 1
! echo build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} | ./ubiquitous_bash.sh _chroot tee -a /info-github-custom && exit 1
! date +"%Y-%m-%d" | ./ubiquitous_bash.sh _chroot tee -a /info-github-upgrade && exit 1
! ./ubiquitous_bash.sh _closeChRoot && exit 1
true
- name: upgrade_core
shell: bash
run: |
./ubiquitous_bash.sh _upgrade_core
timeout-minutes: ${{ github.event.inputs.upgradeTimeout == '300' && 300 || 45 }}
env:
GH_TOKEN: ${{ github.token }}
- name: upgrade_kernel-lts
if: ${{ github.event.inputs.upgradeKernel == 'lts' }}
shell: bash
run: |
./ubiquitous_bash.sh _upgrade_kernel_lts
#./ubiquitous_bash.sh _upgrade_kernel
timeout-minutes: ${{ github.event.inputs.upgradeTimeout == '300' && 300 || 45 }}
env:
GH_TOKEN: ${{ github.token }}
- name: upgrade_kernel-mainline-server
if: ${{ github.event.inputs.upgradeKernel == 'mainline-server' }}
shell: bash
run: |
./ubiquitous_bash.sh _upgrade_kernel_mainline_server
timeout-minutes: ${{ github.event.inputs.upgradeTimeout == '300' && 300 || 45 }}
env:
GH_TOKEN: ${{ github.token }}
- name: upgrade_installers
shell: bash
run: |
./ubiquitous_bash.sh _upgrade_installers
timeout-minutes: ${{ github.event.inputs.upgradeTimeout == '300' && 300 || 45 }}
env:
GH_TOKEN: ${{ github.token }}
# Discouraged. Usually more useful and more standard to do this within '_custom' function.
# ONLY enable if a replacement '_lib/custom/package_kde.tar.xz' is available and desired. This WILL fail if the file is not present, and this is NOT necessary unless a different customization is needed: it is better to rely on the upstream 'ubDistBuild' repository KDE configuration package installed for 'ubdist/OS' .
- name: _rotten_install-kde
shell: bash
run: |
./ubiquitous_bash.sh _create_ubDistBuild-rotten_install-kde
- name: report! root df
shell: bash
run: |
! ./ubiquitous_bash.sh _openChRoot && exit 1
./ubiquitous_bash.sh _chroot df -h / | tee ./_local/root_df.log
! ./ubiquitous_bash.sh _closeChRoot && exit 1
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/root_df.log
env:
GH_TOKEN: ${{ github.token }}
- name: _upgrade_report
shell: bash
run: |
./ubiquitous_bash.sh _upgrade_report
env:
GH_TOKEN: ${{ github.token }}
- name: _custom_report
shell: bash
run: |
./ubiquitous_bash.sh _custom_report
env:
GH_TOKEN: ${{ github.token }}
#- name: _zSpecial_report-FORCE
#shell: bash
#continue-on-error: true
#run: |
#./ubiquitous_bash.sh _zSpecial_report-FORCE
#ls -l ./_local/grub.cfg
#ls -l ./_local/grubenv
#ls -l ./_local/dpkg
#ls -l ./_local/lsmodReport
#ls -l ./_local/binReport
#ls -l ./_local/coreReport
#ls -l ./_local/cfgFW.log
- name: artifacts
uses: actions/upload-artifact@v4
with:
name: convert-live-exhaustive---analysis-log-10-fromImg
path: |
#./_local/grub.cfg
#./_local/grubenv
./_local/dpkg
#./_local/lsmodReport
./_local/binReport
./_local/coreReport
#./_local/cfgFW.log
#- name: report! cfgFW
#shell: bash
#run: |
#cat ./_local/cfgFW.log
- name: release! report! internal
shell: bash
run: |
#gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/grub.cfg
#gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/grubenv
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/dpkg
#gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/lsmodReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/binReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/coreReport
cat /proc/cpuinfo > ./_local/cpuinfo
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/cpuinfo
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/customReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/cronUserReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/cronRootReport
env:
GH_TOKEN: ${{ github.token }}
- name: _hash_img
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _hash_img
- name: fallocate --dig-holes
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _package_ubDistBuild_image
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _package_ubDistBuild_image | sudo -n tee ./_local/_package_ubDistBuild_image.log && exit ${PIPESTATUS[0]}
- name: _ubDistBuild_split
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
run: |
./ubiquitous_bash.sh _ubDistBuild_split | sudo -n tee ./_lib/_ubDistBuild_split.log && exit ${PIPESTATUS[0]}
timeout-minutes: 355
- name: df
shell: bash
run: |
df -h
df -h /
- name: release! package_image
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
run: |
#gh release create build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} --title build_upgrade --notes ""
bash -c '
for currentFile in ./_local/package_image.tar.flx.part*
do
./ubiquitous_bash.sh _stopwatch gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} "$currentFile" &
while [[ $(jobs | wc -l) -ge 12 ]]
do
sleep 2
done
done
wait
'
env:
GH_TOKEN: ${{ github.token }}
- name: release! delete! package_image_before_noBoot
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' || github.event.inputs.DISABLE_BOOT == 'false' }}
shell: bash
continue-on-error: true
run: |
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part00 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part01 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part02 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part03 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part04 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part05 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part06 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part07 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part08 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part09 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part10 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part11 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part12 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part13 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part14 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part15 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part16 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part17 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part18 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part19 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part20 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part21 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part22 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part23 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part24 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part25 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part26 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part27 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part28 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part29 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part30 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part31 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part32 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part33 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part34 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part35 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part36 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part37 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part38 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part39 --yes || true
gh release delete-asset build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} package_image_before_noBoot.tar.flx.part40 --yes || true
true
env:
GH_TOKEN: ${{ github.token }}
build-convert-rootfs:
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
needs: [build, build_release]
#runs-on: ${{ github.event.inputs.DISABLE_ROOTFS != 'false' && 'ubuntu-latest' || github.event.inputs.runnerName == '' && 'ubuntu-latest-m' || github.event.inputs.runnerName }}
runs-on: ${{ github.event.inputs.runnerName == '' && 'ubuntu-latest-m' || github.event.inputs.runnerName }}
steps:
- name: RAND_SEED
shell: bash
run: |
echo "$RAND_SEED" | tee /dev/urandom > /dev/null
echo "$RAND_SEED" | tee /dev/random > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/urandom > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/random > /dev/null
env:
RAND_SEED: ${{ secrets.RAND_SEED }}
- name: report! API Rate Limit
shell: bash
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
#curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"
- name: users
shell: bash
run: |
sudo -u ubuntu -n bash -c 'sudo -n useradd runner --non-unique -u $UID -g $UID' || true
sudo -u ubuntu -n bash -c 'sudo -n groupadd runner --non-unique -g $UID' || true
sudo -u runner -n bash -c 'sudo -n echo $USER $UID' || true
true
# https://github.com/easimon/maximize-build-space
- name: Maximize build space
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' && github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
if: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 1625
temp-reserve-mb: 50
swap-size-mb: 2
#remove-dotnet: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-dotnet: 'true'
#remove-android: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-android: 'true'
#remove-haskell: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-haskell: 'true'
#remove-codeql: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-codeql: 'true'
#remove-docker-images: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-docker-images: 'true'
- name: Maximize build space ! remove ONLY
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' && ( github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' ) }}
if: ${{ ( github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' ) }}
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-large-packages: 'true'
remove-cached-tools: 'true'
remove-swapfile: 'true'
verbose: 'false'
- name: df
shell: bash
run: |
df -h
df -h /
- name: _getCore_ub
shell: bash
run: |
mkdir -p ~/core/infrastructure
cd ~/core/infrastructure
#git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
cd ubiquitous_bash
./_setupUbiquitous.bat
./ubiquitous_bash.sh _custom_splice_opensslConfig
- uses: actions/checkout@v3
with:
fetch-depth: 1
submodules: 'recursive'
- name: _getMinimal_cloud
shell: bash
run: |
! ./ubiquitous_bash.sh _getMinimal_cloud_ubDistBuild_noBoot && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 355
- name: _getMost-aria2
shell: bash
run: |
sudo -n apt-get -y clean
sudo -n apt-get update
sudo -n env DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends -y aria2
timeout-minutes: 355
- name: _test_hash_legacy
shell: bash
run: |
if [[ -e "/etc/ssl/openssl_legacy.cnf" ]]
then
echo -n | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
else
echo -n | openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
fi
# ATTENTION: Either download recently built image from release, or create a DUMMY rootfs package.
# Usually, a DUMMY rootfs package should be created, as a derivative OS is normally created to reconfigure a bootable dist/OS for a special purpose, rather than to merely add features that could be added to the upstream ubdist/OS, and thus using a derivative dist/OS for WSL/docker/etc would not make sense.
# ###
- name: _get_vmImg_ubDistBuild
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' }}
shell: bash
run: |
#export FORCE_AXEL=8
#./ubiquitous_bash.sh _get_vmImg_ubDistBuild "latest"
# DANGER: Github Actions (strictly internal) ONLY!
#export FORCE_AXEL=8
#export MANDATORY_HASH="true"
cd ./_local
rm -f hash-download.txt
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "${{ github.repository }}" "" "package_image.tar.flx" 2> /dev/null | tee >(../ubiquitous_bash.sh _get_extract_ubDistBuild-tar --extract ./vm.img --to-stdout | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256 > hash-download.txt) | ../ubiquitous_bash.sh _get_extract_ubDistBuild
#env:
#GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: fallocate --dig-holes
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' }}
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _hash_img
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' }}
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
#./ubiquitous_bash.sh _hash_img
cat _local/hash-download.txt
- name: _convert-rootfs
#if: ${{ github.event.inputs.DISABLE_ROOTFS == 'false' }}
shell: bash
run: |
export current_diskConstrained="true"
./ubiquitous_bash.sh _convert_rm
./ubiquitous_bash.sh _convert-rootfs | sudo -n tee ./_convert-rootfs.log && exit ${PIPESTATUS[0]}
# ###
# ###
- name: DUMMY-rootfs
#if: ${{ github.event.inputs.DISABLE_ROOTFS != 'false' }}
shell: bash
run: |
rm -f ./_local/package_rootfs.tar || true
rm -f ./_local/package_rootfs.tar.flx || true
#echo > ./_local/package_rootfs.tar
#echo > ./_local/package_rootfs.tar.flx
tar -cf - /dev/null > ./_local/package_rootfs.tar
tar -cf - /dev/null | lz4 -z --fast=1 - ./_local/package_rootfs.tar.flx
# ###
- name: _hash_rootfs
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _hash_rootfs
- name: _ubDistBuild_split-rootfs
shell: bash
run: |
./ubiquitous_bash.sh _ubDistBuild_split-rootfs | sudo -n tee ./_lib/_ubDistBuild_split-rootfs.log && exit ${PIPESTATUS[0]}
timeout-minutes: 355
- name: df
shell: bash
run: |
df -h
df -h /
- name: release! package_rootfs
shell: bash
run: |
#gh release create build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} --title build_upgrade --notes ""
bash -c '
for currentFile in ./_local/package_rootfs.tar.flx.part*
do
./ubiquitous_bash.sh _stopwatch gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} "$currentFile" &
while [[ $(jobs | wc -l) -ge 3 ]]
do
sleep 2
done
done
wait
'
env:
GH_TOKEN: ${{ github.token }}
#- name: _package_rm
#shell: bash
#run: |
#./ubiquitous_bash.sh _package_rm
build-convert-live:
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
needs: [build, build_release]
runs-on: ${{ github.event.inputs.runnerName == '' && 'ubuntu-latest-m' || github.event.inputs.runnerName }}
steps:
- name: RAND_SEED
shell: bash
run: |
echo "$RAND_SEED" | tee /dev/urandom > /dev/null
echo "$RAND_SEED" | tee /dev/random > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/urandom > /dev/null
echo "$RAND_SEED" | sudo -n tee /dev/random > /dev/null
env:
RAND_SEED: ${{ secrets.RAND_SEED }}
- name: users
shell: bash
run: |
sudo -u ubuntu -n bash -c 'sudo -n useradd runner --non-unique -u $UID -g $UID' || true
sudo -u ubuntu -n bash -c 'sudo -n groupadd runner --non-unique -g $UID' || true
sudo -u runner -n bash -c 'sudo -n echo $USER $UID' || true
true
# https://github.com/easimon/maximize-build-space
- name: Maximize build space
if: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 1625
temp-reserve-mb: 50
swap-size-mb: 2
#remove-dotnet: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-dotnet: 'true'
#remove-android: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-android: 'true'
#remove-haskell: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-haskell: 'true'
#remove-codeql: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-codeql: 'true'
#remove-docker-images: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-docker-images: 'true'
- name: Maximize build space ! remove ONLY
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-large-packages: 'true'
remove-cached-tools: 'true'
remove-swapfile: 'true'
verbose: 'false'
- name: df
shell: bash
run: |
df -h
df -h /
# https://github.com/orgs/community/discussions/8305
# https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/
# https://github.com/actions/runner-images/discussions/7191
- name: _getCore_ub
shell: bash
timeout-minutes: 90
run: |
mkdir -p ~/core/infrastructure
cd ~/core/infrastructure
#git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
cd ubiquitous_bash
./_setupUbiquitous.bat
- name: _getMinimal_cloud
shell: bash
run: |
! ~/core/infrastructure/ubiquitous_bash/ubiquitous_bash.sh _getMinimal_cloud && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 90
- uses: actions/checkout@v3
with:
submodules: recursive
- name: _getMinimal_cloud
shell: bash
run: |
! ./ubiquitous_bash.sh _getMinimal_cloud_ubDistBuild_noBoot && exit 1
true
#! sudo -n apt-get -y clean && exit 1
df -h
df -h /
timeout-minutes: 355
- name: _test_hash_legacy
shell: bash
run: |
if [[ -e "/etc/ssl/openssl_legacy.cnf" ]]
then
echo -n | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
else
echo -n | openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
fi
- name: _get_vmImg_ubDistBuild
shell: bash
run: |
#export FORCE_AXEL=8
#./ubiquitous_bash.sh _get_vmImg_ubDistBuild "latest"
# DANGER: Github Actions (strictly internal) ONLY!
#export FORCE_AXEL=8
#export MANDATORY_HASH="true"
cd ./_local
rm -f hash-download.txt
../ubiquitous_bash.sh _wget_githubRelease_join-stdout "${{ github.repository }}" "" "package_image.tar.flx" 2> /dev/null | tee >(../ubiquitous_bash.sh _get_extract_ubDistBuild-tar --extract ./vm.img --to-stdout | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256 > hash-download.txt) | ../ubiquitous_bash.sh _get_extract_ubDistBuild
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: fallocate --dig-holes
shell: bash
run: |
fallocate --dig-holes ./_local/vm.img
- name: _hash_img
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
#./ubiquitous_bash.sh _hash_img
cat _local/hash-download.txt
- name: _fetchAccessories extendedInterface
shell: bash
run: |
cd _local
git clone https://github.com/mirage335-colossus/extendedInterface.git
cd extendedInterface
mkdir -p ../extendedInterface-accessories/integrations/ubcp
curl -L -o ../extendedInterface-accessories/integrations/ubcp/package_ubcp-core.7z $(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/mirage335-colossus/ubiquitous_bash/releases" | jq -r ".[] | select(.name == \"internal\") | .assets[] | select(.name == \"package_ubcp-core.7z\") | .browser_download_url" | sort -n -r | head -n1)
./ubiquitous_bash.sh _build_extendedInterface-fetch | sudo -n tee ../../_lib/_extendedInterface.log && exit ${PIPESTATUS[0]}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: _fetchAccessories ubDistBuild
shell: bash
run: |
cd _local
git clone https://github.com/soaringDistributions/ubDistBuild.git
cd ubDistBuild
mkdir -p ../ubDistBuild-accessories/integrations/ubcp
curl -L -o ../ubDistBuild-accessories/integrations/ubcp/package_ubcp-core.7z $(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "https://api.github.com/repos/mirage335-colossus/ubiquitous_bash/releases" | jq -r ".[] | select(.name == \"internal\") | .assets[] | select(.name == \"package_ubcp-core.7z\") | .browser_download_url" | sort -n -r | head -n1)
./ubiquitous_bash.sh _build_ubDistBuild-fetch | sudo -n tee ../../_lib/_ubDistBuild.log && exit ${PIPESTATUS[0]}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: _convert-live _create_ubDistBuild_feedAccessories
shell: bash
run: |
export current_diskConstrained="true"
./ubiquitous_bash.sh _convert_rm
./ubiquitous_bash.sh _create_ubDistBuild_feedAccessories | sudo -n tee ./_create_ubDistBuild_feedAccessories.log && exit ${PIPESTATUS[0]}
./ubiquitous_bash.sh _safeRMR ./_local/livefs
true
# DANGER: GitHub Actions ONLY!
- name: _create_ubDistBuild_feedAccessories rm
shell: bash
run: |
rm -rf ../extendedInterface-accessories
[[ -e ../extendedInterface-accessories ]] && exit 1 || true
rm -rf ../ubDistBuild-accessories
[[ -e ../ubDistBuild-accessories ]] && exit 1 || true
# DANGER: GitHub Actions ONLY!
- name: _fetchAccessories rm
shell: bash
run: |
cd _local
rm -rf extendedInterface
[[ -e extendedInterface ]] && exit 1 || true
rm -rf ubDistBuild
[[ -e ubDistBuild ]] && exit 1 || true
- name: _convert-live _convert-live_ISO
shell: bash
run: |
export current_diskConstrained="true"
./ubiquitous_bash.sh _convert_rm
./ubiquitous_bash.sh _convert-live_ISO | sudo -n tee ./_convert-live_ISO.log && exit ${PIPESTATUS[0]}
./ubiquitous_bash.sh _safeRMR ./_local/livefs
true
- name: _convert-live log
shell: bash
run: |
#./_create_ubDistBuild_feedAccessories.log
cat ./_convert-live_ISO.log | sudo -n tee ./_convert-live.log && exit ${PIPESTATUS[0]}
- name: _hash_live
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
./ubiquitous_bash.sh _hash_live
- name: _ubDistBuild_split-live
shell: bash
run: |
./ubiquitous_bash.sh _ubDistBuild_split-live
- name: df
shell: bash
run: |
df -h
df -h /
- name: release! live
shell: bash
run: |
#gh release create build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} --title build_upgrade --notes ""
bash -c '
for currentFile in ./_local/vm-live.iso.part*
do
./ubiquitous_bash.sh _stopwatch gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} "$currentFile" &
while [[ $(jobs | wc -l) -ge 3 ]]
do
sleep 2
done
done
wait
'
env:
GH_TOKEN: ${{ github.token }}
#- name: _package_rm
#shell: bash
#run: |
#./ubiquitous_bash.sh _package_rm
build-hash:
if : ${{ github.event.inputs.DISABLE_RELEASE == 'false' }}
needs: [build, build-convert-rootfs, build-convert-live]
runs-on: ubuntu-latest
#runs-on: ${{ github.event.inputs.runnerName == '' && 'ubuntu-latest' || github.event.inputs.runnerName }}
steps:
- name: report! API Rate Limit
shell: bash
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
#curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"
- name: users
shell: bash
run: |
sudo -u ubuntu -n bash -c 'sudo -n useradd runner --non-unique -u $UID -g $UID' || true
sudo -u ubuntu -n bash -c 'sudo -n groupadd runner --non-unique -g $UID' || true
sudo -u runner -n bash -c 'sudo -n echo $USER $UID' || true
true
# https://github.com/easimon/maximize-build-space
- name: Maximize build space
if: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 1625
temp-reserve-mb: 50
swap-size-mb: 2
#remove-dotnet: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-dotnet: 'true'
#remove-android: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-android: 'true'
#remove-haskell: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-haskell: 'true'
#remove-codeql: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-codeql: 'true'
#remove-docker-images: ${{ github.event.inputs.runnerName != 'ubuntu-latest-m' && github.event.inputs.runnerName != 'ubuntu-latest-l' && github.event.inputs.runnerName != 'ubuntu-latest-h' }}
remove-docker-images: 'true'
- name: Maximize build space ! remove ONLY
if: ${{ github.event.inputs.runnerName == 'ubuntu-latest-m' || github.event.inputs.runnerName == 'ubuntu-latest-l' || github.event.inputs.runnerName == 'ubuntu-latest-h' }}
uses: AdityaGarg8/remove-unwanted-software@v4.1
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-large-packages: 'true'
remove-cached-tools: 'true'
remove-swapfile: 'true'
verbose: 'false'
- name: df
shell: bash
run: |
df -h
df -h /
- name: _getCore_ub
shell: bash
run: |
mkdir -p ~/core/infrastructure
cd ~/core/infrastructure
#git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
cd ubiquitous_bash
./_setupUbiquitous.bat
./ubiquitous_bash.sh _custom_splice_opensslConfig
#- name: _getMinimal_cloud
#shell: bash
#run: |
#! ~/core/infrastructure/ubiquitous_bash/ubiquitous_bash.sh _getMinimal_cloud && exit 1
#true
##! sudo -n apt-get -y clean && exit 1
#df -h
#df -h /
- name: _getMost-aria2
shell: bash
run: |
sudo -n apt-get -y clean
sudo -n apt-get update
sudo -n env DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends -y aria2
timeout-minutes: 355
- uses: actions/checkout@v3
with:
submodules: recursive
- name: _test_hash_legacy
shell: bash
run: |
if [[ -e "/etc/ssl/openssl_legacy.cnf" ]]
then
echo -n | env OPENSSL_CONF="/etc/ssl/openssl_legacy.cnf" openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
else
echo -n | openssl dgst -whirlpool -binary | xxd -p -c 256
exit ${PIPESTATUS[0]}
fi
#- name: txt-stat/tboot
#shell: bash
#run: |
#cat /proc/cpuinfo | grep 'model name'
#echo
#sudo -n txt-stat || true
#true
- name: sev/AMD
shell: bash
run: |
cat /proc/cpuinfo | grep 'model name'
echo
echo 'cat /sys/module/kvm_amd/parameters/sev'
cat /sys/module/kvm_amd/parameters/sev || true
echo 'dmesg | grep -i sev'
sudo -n dmesg | grep -i sev || true
true
- name: sgx/Intel
shell: bash
run: |
cat /proc/cpuinfo | grep 'model name'
echo
echo 'grep sgx /proc/cpuinfo'
grep sgx /proc/cpuinfo || true
echo 'dmesg | grep sgx'
sudo -n dmesg | grep -i sgx || true
# Apparently normal: ' sgx: [Firmware Bug]: Unable to map EPC section to online node. Fallback to the NUMA node 0. '
true
# ATTENTION: _prog-ops/hash-custom.sh
- name: _hash_ubdist-fast
shell: bash
run: |
export skimfast=${{ inputs.skimfast }}
echo $skimfast
#export FORCE_AXEL=8
#export MANDATORY_HASH="true"
./ubiquitous_bash.sh _hash_ubdist-fast
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: hash ___________________________
shell: bash
run: |
cat ./_local/_hash-ubdist.txt
- name: artifacts
uses: actions/upload-artifact@v3
with:
name: _hash-ubdist.txt
path: |
./_local/_hash-ubdist.txt
- name: release! hash
shell: bash
run: |
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/_hash-ubdist.txt
env:
GH_TOKEN: ${{ github.token }}
build-analysis:
needs: [build, build_release]
runs-on: ubuntu-latest
steps:
#- name: report! API Rate Limit
#shell: bash
#run: |
#curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
##curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"
#- name: _getCore_ub
#shell: bash
#run: |
#mkdir -p ~/core/infrastructure
#cd ~/core/infrastructure
##git clone --depth 1 --recursive https://github.com/mirage335-colossus/ubiquitous_bash.git
#git clone --depth 1 https://github.com/mirage335-colossus/ubiquitous_bash.git
#cd ubiquitous_bash
#./_setupUbiquitous.bat
#./ubiquitous_bash.sh _custom_splice_opensslConfig
- uses: actions/checkout@v3
with:
fetch-depth: 1
#submodules: 'recursive'
#- name: _getMinimal_cloud
#shell: bash
#run: |
#! ./ubiquitous_bash.sh _getMinimal_cloud_ubDistBuild_noBoot && exit 1
#true
##! sudo -n apt-get -y clean && exit 1
#df -h
#df -h /
#timeout-minutes: 355
- name: _getMinimal_cloud-analysis
shell: bash
run: |
sudo -n apt-get -y install jq gh curl coreutils
#- name: _getMost-aria2
#shell: bash
#run: |
#sudo -n apt-get -y clean
#sudo -n apt-get update
#sudo -n env DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends -y aria2
#timeout-minutes: 355
- name: report! cronUserReport
shell: bash
run: |
mkdir -p ./_local/analysis
cd ./_local/analysis
# Get the list of releases
RELEASES=$(curl -s -H "Authorization: token $GH_TOKEN" https://api.github.com/repos/"${{ github.repository }}"/releases)
# Download binReport file for the current release
curl -s -H "Authorization: token $GH_TOKEN" -L -o "cronUserReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/cronUserReport"
echo
cat ./cronUserReport-$currentReleaseTag
env:
currentReleaseTag: build_upgrade-${{ github.run_id }}-${{ github.run_attempt }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: report! cronRootReport
shell: bash
run: |
mkdir -p ./_local/analysis
cd ./_local/analysis
# Get the list of releases
RELEASES=$(curl -s -H "Authorization: token $GH_TOKEN" https://api.github.com/repos/"${{ github.repository }}"/releases)
# Download binReport file for the current release
curl -s -H "Authorization: token $GH_TOKEN" -L -o "cronRootReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/cronRootReport"
echo
cat ./cronRootReport-$currentReleaseTag
env:
currentReleaseTag: build_upgrade-${{ github.run_id }}-${{ github.run_attempt }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: analysis! missing-binaries
shell: bash
run: |
mkdir -p ./_local/analysis
#cp ./_local/lsmodReport ./_local/analysis/lsmodReport
#cp ./_local/binReport ./_local/analysis/binReport
#cp ./_local/coreReport ./_local/analysis/coreReport
#cp ./_local/dpkg ./_local/analysis/dpkg
cd ./_local/analysis
# Get the list of releases
RELEASES=$(curl -s -H "Authorization: token $GH_TOKEN" https://api.github.com/repos/"${{ github.repository }}"/releases)
# Download binReport file for the current release
#curl -s -H "Authorization: token $GH_TOKEN" -L -o "lsmodReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/lsmodReport"
curl -s -H "Authorization: token $GH_TOKEN" -L -o "binReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/binReport"
curl -s -H "Authorization: token $GH_TOKEN" -L -o "coreReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/coreReport"
curl -s -H "Authorization: token $GH_TOKEN" -L -o "dpkg-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/dpkg"
curl -s -H "Authorization: token $GH_TOKEN" -L -o "customReport-$currentReleaseTag" "https://github.com/"${{ github.repository }}"/releases/download/$currentReleaseTag/customReport"
# Loop through each release
#local currentIteration
currentIteration=0
#for RELEASE in $(echo "$RELEASES" | jq -r '.[].tag_name' | sort --reverse); do
for RELEASE in $(echo "$RELEASES" | jq -r 'sort_by(.published_at) | reverse | .[].tag_name' | head -n 20); do
currentIteration=$((currentIteration+1))
# Compare the list of binaries in this release to the current release
if [ "$RELEASE" != "$currentReleaseTag" ]; then
# Download the binReport file for this release
#[[ "$currentIteration" -lt "5" ]] && curl -s -H "Authorization: token $GH_TOKEN" -L -o "lsmodReport-$RELEASE" "https://github.com/"${{ github.repository }}"/releases/download/$RELEASE/lsmodReport"
[[ "$currentIteration" -lt "6" ]] && curl -s -H "Authorization: token $GH_TOKEN" -L -o "binReport-$RELEASE" "https://github.com/"${{ github.repository }}"/releases/download/$RELEASE/binReport"
[[ "$currentIteration" -lt "7" ]] && curl -s -H "Authorization: token $GH_TOKEN" -L -o "coreReport-$RELEASE" "https://github.com/"${{ github.repository }}"/releases/download/$RELEASE/coreReport"
curl -s -H "Authorization: token $GH_TOKEN" -L -o "dpkg-$RELEASE" "https://github.com/"${{ github.repository }}"/releases/download/$RELEASE/dpkg"
#[[ "$currentIteration" -lt "5" ]] && echo | tee -a ./missing-lsmodReport
#[[ "$currentIteration" -lt "5" ]] && echo "Binaries (lsmod) loaded in $RELEASE but not in currentRelease $currentReleaseTag:" | tee -a ./missing-lsmodReport
#[[ "$currentIteration" -lt "5" ]] && comm -23 <(sort "lsmodReport-$RELEASE") <(sort "lsmodReport-$currentReleaseTag") | tee -a ./missing-lsmodReport
[[ "$currentIteration" -lt "6" ]] && echo | tee -a ./missing-binReport
[[ "$currentIteration" -lt "6" ]] && echo "Binaries (filesystem) in $RELEASE but not in currentRelease $currentReleaseTag:" | tee -a ./missing-binReport
[[ "$currentIteration" -lt "6" ]] && comm -23 <(sort "binReport-$RELEASE") <(sort "binReport-$currentReleaseTag") | tee -a ./missing-binReport
[[ "$currentIteration" -lt "7" ]] && echo | tee -a ./missing-coreReport
[[ "$currentIteration" -lt "7" ]] && echo "Binaries (core) in $RELEASE but not in currentRelease $currentReleaseTag:" | tee -a ./missing-coreReport
[[ "$currentIteration" -lt "7" ]] && comm -23 <(sort "coreReport-$RELEASE" | grep -v '_local/h') <(sort "coreReport-$currentReleaseTag" | grep -v '_local/h') | tee -a ./missing-coreReport
echo | tee -a ./missing-dpkg
echo "Binaries (dpkg) in $RELEASE but not in currentRelease $currentReleaseTag:" | tee -a ./missing-dpkg
comm -23 <(sort "dpkg-$RELEASE") <(sort "dpkg-$currentReleaseTag") | tee -a ./missing-dpkg
echo | tee -a ./missing-customReport
echo "Binaries (filesystem: custom) in $RELEASE but not in currentRelease $currentReleaseTag:" | tee -a ./missing-customReport
comm -23 <(sort "customReport-$RELEASE" | grep -v '_local/h') <(sort "customReport-$currentReleaseTag" | grep -v '_local/h') | tee -a ./missing-customReport
fi
done
env:
currentReleaseTag: build_upgrade-${{ github.run_id }}-${{ github.run_attempt }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: release! analysis! missing-binaries
shell: bash
run: |
#gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/analysis/missing-lsmodReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/analysis/missing-binReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/analysis/missing-coreReport
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/analysis/missing-dpkg
gh release upload build_upgrade-${{ github.run_id }}-${{ github.run_attempt }} ./_local/analysis/missing-customReport
env:
GH_TOKEN: ${{ github.token }}
- name: report! API Rate Limit
shell: bash
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ""${{ secrets.GITHUB_TOKEN }}" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/rate_limit
#curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit | jq -r ".rate"