Add build and publish CI

pull/80/head
jamcleod 2023-10-26 17:05:25 -04:00
parent 007e06e437
commit 8dc47d9bca
No known key found for this signature in database
GPG Key ID: 4D63EE43C416B96A
5 changed files with 89 additions and 12 deletions

24
.config
View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.37.0.git
# Tue Oct 3 17:14:05 2023
# Thu Oct 26 20:54:12 2023
#
CONFIG_HAVE_DOT_CONFIG=y
@ -19,8 +19,8 @@ CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_LFS=y
# CONFIG_PAM is not set
CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
CONFIG_FEATURE_PIDFILE=y
CONFIG_PID_FILE_PATH="/var/run"
CONFIG_BUSYBOX=y
@ -358,9 +358,9 @@ CONFIG_BASE64=y
CONFIG_UUENCODE=y
CONFIG_WC=y
CONFIG_FEATURE_WC_LARGE=y
CONFIG_WHO=y
CONFIG_W=y
CONFIG_USERS=y
# CONFIG_WHO is not set
# CONFIG_W is not set
# CONFIG_USERS is not set
CONFIG_WHOAMI=y
CONFIG_YES=y
@ -645,8 +645,8 @@ CONFIG_HWCLOCK=y
CONFIG_IONICE=y
CONFIG_IPCRM=y
CONFIG_IPCS=y
CONFIG_LAST=y
CONFIG_FEATURE_LAST_FANCY=y
# CONFIG_LAST is not set
# CONFIG_FEATURE_LAST_FANCY is not set
CONFIG_LOSETUP=y
CONFIG_LSPCI=y
CONFIG_LSUSB=y
@ -713,7 +713,7 @@ CONFIG_UEVENT=y
CONFIG_UMOUNT=y
CONFIG_FEATURE_UMOUNT_ALL=y
CONFIG_UNSHARE=y
CONFIG_WALL=y
# CONFIG_WALL is not set
#
# Common options for mount/umount
@ -836,9 +836,9 @@ CONFIG_PARTPROBE=y
CONFIG_RAIDAUTORUN=y
CONFIG_READAHEAD=y
CONFIG_RFKILL=y
CONFIG_RUNLEVEL=y
# CONFIG_RUNLEVEL is not set
CONFIG_RX=y
CONFIG_SEEDRNG=y
# CONFIG_SEEDRNG is not set
CONFIG_SETFATTR=y
CONFIG_SETSERIAL=y
CONFIG_STRINGS=y
@ -1093,7 +1093,7 @@ CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOP_SMP_PROCESS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_UPTIME=y
CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
CONFIG_WATCH=y
#

55
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: Compile and Publish Console
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build
run: |
docker run --rm -v $PWD:/app -w /app ghcr.io/panda-re/embedded-toolchains:latest /app/build.sh
tar -czvf busybox-latest.tar.gz build
- name: Save package
uses: actions/upload-artifact@v3
with:
name: busybox
path: build
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: release_${{ github.sha }}
release_name: Release ${{ github.ref }}
body: |
Release @${{ github.ref }}
draft: true
prerelease: false
- name: Upload release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./busybox-latest.tar.gz
asset_name: busybox-latest.tar.gz
asset_content_type: application/gzip
- name: Publish release
uses: StuYarrow/publish-release@v1.1.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
id: ${{ steps.create_release.outputs.id }}

6
.gitignore vendored
View File

@ -13,6 +13,7 @@ Config.in
# Never ignore these
#
!.gitignore
!.github
#
# Normal output
@ -20,6 +21,8 @@ Config.in
/busybox
/busybox_old
/busybox_unstripped*
/out
/build
#
# Backups / patches
@ -57,6 +60,9 @@ cscope.po.out
tags
TAGS
# IGLOO
test.sh
#
# user-supplied scripts
#

14
build.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
OUTDIR=build
TARGETPREFIXLIST=(x86_64-linux-gnu i686-linux-musl mipseb-linux-musl mipsel-linux-musl arm-linux-musleabi aarch64-linux-musl mips64eb-linux-musl mips64el-linux-musl)
TARGETNAMELIST=( x86_64 i686 mips mips arm aarch64 mips64 mips64 )
mkdir $OUTDIR
for i in "${!TARGETNAMELIST[@]}"; do
make ARCH=${TARGETNAMELIST[i]} CROSS_COMPILE=${TARGETPREFIXLIST[i]}-
mv busybox $OUTDIR/busybox.${TARGETPREFIXLIST[i]} || mv busybox_unstripped $OUTDIR/busybox.${TARGETPREFIXLIST[i]}
make clean
done

2
docker_build.sh Executable file
View File

@ -0,0 +1,2 @@
#!/bin/bash
docker run --rm -v $PWD:/app -w /app ghcr.io/panda-re/embedded-toolchains:latest /app/build.sh