92 lines
No EOL
3.4 KiB
YAML
92 lines
No EOL
3.4 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 difos repo
|
|
run: |
|
|
if [ -d "/opt/difos/.git" ]; then
|
|
cd /opt/difos
|
|
git reset --hard
|
|
git clean -fd
|
|
git pull origin master
|
|
else
|
|
git clone https://$GIT_PAT:x-oauth-basic@git.difuse.io/Difuse/difos.git /opt/difos
|
|
fi
|
|
|
|
- name: Checkout difos-files repo
|
|
run: |
|
|
if [ -d "/opt/difos-files/.git" ]; then
|
|
cd /opt/difos-files
|
|
git reset --hard
|
|
git clean -fd
|
|
git pull origin master
|
|
else
|
|
git clone https://$GIT_PAT:x-oauth-basic@git.difuse.io/Difuse/difos-files.git /opt/difos-files
|
|
fi
|
|
|
|
- name: Add Custom Files
|
|
run: |
|
|
cd /opt/difos-files
|
|
./setup-all.sh /opt/difos $GIT_PAT
|
|
|
|
- name: Build
|
|
run: |
|
|
cd /opt/difos
|
|
rm -f .config
|
|
./scripts/feeds update -a
|
|
./scripts/feeds install -a
|
|
rm -f .config
|
|
cp -rf configs/dmsbg100.config .config
|
|
make defconfig
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make targetclean -j4
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make download -j4
|
|
FORCE_UNSAFE_CONFIGURE=1 CONFIG_TARGET_ROOTFS_INITRAMFS=n make -j4
|
|
|
|
- name: Publish Packages to Portal
|
|
run: |
|
|
difosDir='/opt/difos'
|
|
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 }}
|
|
echo "Would have uploaded $folder_name.tar.gz to portal"
|
|
|
|
- name: Publish Release
|
|
run: |
|
|
difosDir='/opt/difos'
|
|
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 }}
|
|
echo "Would have uploaded $sdFile to portal"
|
|
# curl -L -X POST -H 'Content-Type: multipart/form-data' -F "file=@$sqFile" https://$PORTAL_ENDPOINT/software/upload/sysupgrade/$ENVIRONMENT/${{ env.PORTAL_API_KEY }}
|
|
echo "Would have uploaded $sqFile to portal" |