Update lxd.patch #23
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"jobs": { | |
"build-jammy": { | |
"runs-on": "ubuntu-22.04", | |
"steps": [ | |
{ | |
"uses": "actions/checkout@v3" | |
}, | |
{ | |
"uses": "whywaita/workflow-telemetry-action@add-disk-space" | |
}, | |
{ | |
"uses": "Kesin11/actions-timeline@v1" | |
}, | |
{ | |
"uses": "whywaita/setup-lxd@v1" | |
}, | |
{ | |
"name": "Setup packer", | |
"run": "sudo apt-get install -y wget unzip\ncurl -L -O https://releases.hashicorp.com/packer/1.7.0/packer_1.7.0_linux_amd64.zip\nunzip packer_1.7.0_linux_amd64.zip\nmv ./packer /tmp/packer\nchmod +x /tmp/packer\nrm -rf packer_1.7.0_linux_amd64.zip\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Setup packer-plugin-lxd", | |
"run": "wget https://github.com/hashicorp/packer-plugin-lxd/releases/download/v1.0.1/packer-plugin-lxd_v1.0.1_x5.0_linux_amd64.zip\nunzip packer-plugin-lxd_v1.0.1_x5.0_linux_amd64.zip\nmv packer-plugin-lxd_v1.0.1_x5.0_linux_amd64 /tmp/packer-plugin-lxd\nchmod +x /tmp/packer-plugin-lxd\nrm -f packer-plugin-lxd_v1.0.1_x5.0_linux_amd64.zip\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Setup distrobuilder", | |
"run": "sudo snap install distrobuilder --classic", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Delete unused file", | |
"run": "sudo rm -rf /opt/\nsudo rm -rf /usr/local/*\nsudo rm -rf /usr/local/.ghcup\nsudo rm -rf /usr/lib/jvm /usr/lib/google-cloud-sdk\nsudo rm -rf /home/runneradmin /home/linuxbrew\nsudo rm -rf /home/runner/runners/*.tar.gz\n# ignore /var/run, snap lxd packages, apt\nsudo ls /var/**/** | grep \":\" | tr -d \":\" | grep -Ev \"/var/run|/var/snap/lxd|/var/lib/snapd|/var/lib/dpkg\" | xargs -I%% sudo rm -rf %%\n# ignore /usr/share/dpkg\nls /usr/share/ | grep -vE \"dpkg|debconf|dbus\" | xargs -I%% sudo rm -rf /usr/share/%%\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Display storage information", | |
"run": "df -Th", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Clone actions/runner-images", | |
"run": "git clone --depth 1 https://github.com/actions/runner-images\ncd runner-images\nexport DIR=$(pwd)\necho \"dir=${DIR}\" >> $GITHUB_ENV\necho \"virtual-environments-hash=$(git rev-parse --short HEAD)\" >> $GITHUB_ENV\necho \"build-date=$(date '+%Y%m%d')\" >> $GITHUB_ENV\necho \"os-release=$(cat /etc/lsb-release | grep DISTRIB_RELEASE | cut -d'=' -f2)\" >> $GITHUB_ENV\n", | |
"shell": "bash" | |
}, | |
{ | |
"if": "${{ env.os-release == '22.04' }}", | |
"name": "Clear duplicate entry in nftables (only jammy)", | |
"run": "# ref: https://discuss.linuxcontainers.org/t/lxdbr0-firewall-problem-with-ubuntu-22-04-host-running-docker-and-lxd/15298/9\nsudo nft flush ruleset\nsudo systemctl restart snap.lxd.daemon\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Apply LXD patch", | |
"run": "cp ../lxd.patch .\npatch -p1 < lxd.patch\n", | |
"shell": "bash", | |
"working-directory": "${{ env.dir }}" | |
}, | |
{ | |
"name": "packer validate packer.json", | |
"run": "/tmp/packer validate -syntax-only images/ubuntu/templates/ubuntu-22.04.pkr.hcl", | |
"shell": "bash", | |
"working-directory": "${{ env.dir }}" | |
}, | |
{ | |
"env": { | |
"PACKER_LOG": 1 | |
}, | |
"name": "packer build packer.json", | |
"run": "PATH=$PATH:/tmp /tmp/packer build -on-error=abort images/ubuntu/templates/ubuntu-22.04.pkr.hcl", | |
"shell": "bash", | |
"working-directory": "${{ env.dir }}" | |
}, | |
{ | |
"name": "Stop container", | |
"run": "lxc stop packer-lxd", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Remove swap", | |
"run": "sudo swapoff /mnt/swapfile\nsudo rm -rf /mnt/swapfile\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Build by distrobuilder", | |
"run": "sudo mkdir -p /mnt/cache\nsudo mkdir -p /mnt/output\nsudo distrobuilder pack-lxd distrobuilder-def.yaml \"/var/snap/lxd/common/lxd/storage-pools/default/containers/packer-lxd\" /mnt/output --cache-dir /mnt/cache\n\nset -x\nls -l /mnt/output\n", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Remove container", | |
"run": "lxc delete packer-lxd", | |
"shell": "bash" | |
}, | |
{ | |
"name": "Upload artifact", | |
"uses": "actions/upload-artifact@v3", | |
"with": { | |
"name": "virtual-environments-lxd-${{ env.os-release }}-${{ env.virtual-environments-hash }}-${{ env.build-date }}.zip", | |
"path": "/mnt/output/*", | |
"retention-days": 5 | |
} | |
} | |
] | |
} | |
}, | |
"name": "Build image - jammy", | |
"on": { | |
"pull_request": { }, | |
"workflow_dispatch": { } | |
} | |
} |