mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
116 lines
4.1 KiB
YAML
116 lines
4.1 KiB
YAML
name: Build image
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- v*
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# Check cache
|
|
- name: Cache buildroot
|
|
id: cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: .buildroot
|
|
key: ${{ runner.os }}-${{ hashFiles('files/configs/arpl_defconfig') }}
|
|
|
|
# Install dependencies
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libelf-dev qemu-utils
|
|
|
|
# Prepare buildroot for first make (for cache)
|
|
- name: Prepare buildroot
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
git clone --single-branch -b 2022.02 https://github.com/buildroot/buildroot.git .buildroot
|
|
# Copy files
|
|
echo "Copying files"
|
|
cp -Ru files/* .buildroot
|
|
cd .buildroot
|
|
echo "Generating default config"
|
|
make BR2_EXTERNAL=../external arpl_defconfig
|
|
echo "First make"
|
|
make BR2_EXTERNAL=../external
|
|
|
|
# Build incremental from cache
|
|
- name: Build image
|
|
id: build
|
|
run: |
|
|
VERSION=`<VERSION`
|
|
echo "::set-output name=VERSION::${VERSION}"
|
|
# Remove old files
|
|
rm -rf .buildroot/output/target/opt/arpl
|
|
rm -rf .buildroot/board/arpl/overlayfs
|
|
rm -rf .buildroot/board/arpl/p1
|
|
rm -rf .buildroot/board/arpl/p3
|
|
# Get latest LKMs
|
|
# echo "Getting latest LKMs"
|
|
# TAG=`curl -s https://api.github.com/repos/fbelavenuto/redpill-lkm/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
|
# curl -L "https://github.com/fbelavenuto/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o /tmp/rp-lkms.zip
|
|
# rm -rf files/board/arpl/p3/lkms/*
|
|
# unzip /tmp/rp-lkms.zip -d files/board/arpl/p3/lkms
|
|
# # Get latest addons and install its
|
|
# echo "Getting latest Addons"
|
|
# TAG=`curl -s https://api.github.com/repos/fbelavenuto/arpl-addons/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`
|
|
# curl -L "https://github.com/fbelavenuto/arpl-addons/releases/download/${TAG}/addons.zip" -o /tmp/addons.zip
|
|
# mkdir -p /tmp/addons
|
|
# unzip /tmp/addons.zip -d /tmp/addons
|
|
# DEST_PATH="files/board/arpl/p3/addons"
|
|
# echo "Installing addons to ${DEST_PATH}"
|
|
# for PKG in `ls /tmp/addons/*.addon`; do
|
|
# ADDON=`basename ${PKG} | sed 's|.addon||'`
|
|
# mkdir -p "${DEST_PATH}/${ADDON}"
|
|
# echo "Extracting ${PKG} to ${DEST_PATH}/${ADDON}"
|
|
# tar xaf "${PKG}" -C "${DEST_PATH}/${ADDON}"
|
|
# done
|
|
# Copy files
|
|
echo "Copying files"
|
|
sed 's/^ARPL_VERSION=.*/ARPL_VERSION="'${VERSION}'"/' -i files/board/arpl/overlayfs/opt/arpl/include/consts.sh
|
|
cp -Ru files/* .buildroot/
|
|
cd .buildroot
|
|
echo "Generating default config"
|
|
make BR2_EXTERNAL=../external arpl_defconfig
|
|
echo "Version: ${VERSION}"
|
|
echo "Building..."
|
|
make BR2_EXTERNAL=../external
|
|
cd -
|
|
qemu-img convert -O vmdk arpl.img arpl.vmdk
|
|
|
|
# Zip image
|
|
- name: Pack
|
|
shell: bash
|
|
run: |
|
|
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.img.zip" arpl.img
|
|
zip -9 "arpl-${{ steps.build.outputs.VERSION }}.vmdk.zip" arpl.vmdk
|
|
|
|
# Upload artifact
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: Images
|
|
path: |
|
|
arpl.img
|
|
arpl.vmdk
|
|
retention-days: 1
|
|
|
|
# Publish a release if is a tag
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: |
|
|
arpl-${{ steps.build.outputs.VERSION }}.img.zip
|
|
arpl-${{ steps.build.outputs.VERSION }}.vmdk.zip
|
|
.buildroot/output/images/bzImage
|
|
.buildroot/output/images/rootfs.cpio.xz
|