difos/.forgejo/workflows/dmsbg-100.yml
hayzam d589c3f7b2
All checks were successful
/ build-and-publish (push) Successful in 2h25m39s
Update .forgejo/workflows/dmsbg-100.yml
2024-11-14 07:01:03 +00:00

75 lines
3 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 -L -X POST -H 'Content-Type: multipart/form-data' -F "file=@$folder_name.tar.gz" https://$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 -L -X POST -H 'Content-Type: multipart/form-data' -F "file=@$sdFile" https://$PORTAL_ENDPOINT/software/upload/sd/$ENVIRONMENT/${{ env.PORTAL_API_KEY }}
curl -L -X POST -H 'Content-Type: multipart/form-data' -F "file=@$sqFile" https://$PORTAL_ENDPOINT/software/upload/sysupgrade/$ENVIRONMENT/${{ env.PORTAL_API_KEY }}