75 lines
2.9 KiB
YAML
75 lines
2.9 KiB
YAML
on:
|
|
push:
|
|
tags:
|
|
- 'v*.*.*'
|
|
|
|
env:
|
|
GIT_PAT: ${{ secrets.GIT_PAT }}
|
|
PORTAL_ENDPOINT: ${{ secrets.PORTAL_ENDPOINT }}
|
|
PORTAL_API_KEY: ${{ secrets.PORTAL_API_KEY }}
|
|
|
|
jobs:
|
|
build-and-publish:
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: Determine Environment
|
|
id: determine-env
|
|
run: |
|
|
TAG_REF=${GITHUB_REF#refs/tags/}
|
|
IFS='.' read -ra VERSION <<< "${TAG_REF#v}"
|
|
PATCH_VERSION=${VERSION[2]}
|
|
if [[ $PATCH_VERSION -eq 0 ]]; then
|
|
echo "ENVIRONMENT=master" >> $GITHUB_ENV
|
|
echo "cache-prefix=master" >> $GITHUB_ENV
|
|
echo "::set-output name=cache-prefix::master"
|
|
else
|
|
echo "ENVIRONMENT=staging" >> $GITHUB_ENV
|
|
echo "cache-prefix=staging" >> $GITHUB_ENV
|
|
echo "::set-output name=cache-prefix::staging"
|
|
fi
|
|
echo "TAG_REF=${TAG_REF}" >> $GITHUB_ENV
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext libncurses-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget python3-setuptools swig
|
|
npm install -g pkg@5.8.1
|
|
|
|
- name: Add Custom Files
|
|
run: |
|
|
echo $GIT_PAT
|
|
git clone https://$GIT_PAT:x-oauth-basic@git.difuse.io/Difuse/difos-files.git
|
|
cd difos-files
|
|
./setup-all.sh ${{ github.workspace }} $GIT_PAT
|
|
|
|
- name: Build
|
|
run: |
|
|
./scripts/feeds update -a
|
|
./scripts/feeds install -a
|
|
cp -rf configs/dmsbg100.config .config
|
|
make defconfig
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make clean -j16
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make download -j16
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make world -j16
|
|
|
|
- name: Publish Packages to Portal
|
|
run: |
|
|
difosDir='.'
|
|
cd $difosDir
|
|
folder_name=opkg-v$TAG_REF-$ENVIRONMENT
|
|
mkdir -p $folder_name
|
|
cp -rf ./bin/packages/aarch64_cortex-a53/* $folder_name/
|
|
tar -czvf $folder_name.tar.gz $folder_name
|
|
curl -X POST -H 'Content-Type: multipart/form-data' -F "file=@$folder_name.tar.gz" http://$PORTAL_ENDPOINT/software/upload/opkg/${{ env.PORTAL_API_KEY }}
|
|
|
|
- name: Publish Release
|
|
run: |
|
|
difosDir='.'
|
|
cd $difosDir
|
|
sdFile=$(find ./bin/ -name "*difos*" | grep sdcard | head -n1)
|
|
sqFile=$(find ./bin/ -name "*difos*" | grep squash | head -n1)
|
|
curl -X POST -H 'Content-Type: multipart/form-data' -F "file=@$sdFile" http://$PORTAL_ENDPOINT/software/upload/sd/$ENVIRONMENT/${{ env.PORTAL_API_KEY }}
|
|
curl -X POST -H 'Content-Type: multipart/form-data' -F "file=@$sqFile" http://$PORTAL_ENDPOINT/software/upload/sysupgrade/$ENVIRONMENT/${{ env.PORTAL_API_KEY }}
|