2020-10-02 14:18:13 +00:00
|
|
|
name: openmptcprouter
|
2020-09-16 06:56:22 +00:00
|
|
|
on: [push]
|
|
|
|
|
|
|
|
env:
|
|
|
|
REPO_URL: 'https://github.com/ysurac/openmptcprouter'
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2022-02-23 20:00:52 +00:00
|
|
|
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx]
|
2021-11-30 16:45:43 +00:00
|
|
|
OMR_KERNEL: [5.4, 5.15]
|
2020-09-16 06:56:22 +00:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
continue-on-error: true
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Branch name
|
|
|
|
id: branch_name
|
|
|
|
run: |
|
|
|
|
echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/}
|
|
|
|
echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/}
|
|
|
|
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
|
|
|
|
echo ::set-output name=WORKSPACE::${GITHUB_WORKSPACE}
|
|
|
|
- name: Prepare
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler
|
2020-10-13 06:08:56 +00:00
|
|
|
- name: Free disk space
|
|
|
|
run: |
|
2020-10-13 17:50:17 +00:00
|
|
|
df -h
|
2020-10-13 10:33:15 +00:00
|
|
|
sudo swapoff -a >/dev/null 2>&1 || true
|
|
|
|
sudo rm -f /swapfile >/dev/null 2>&1 || true
|
|
|
|
sudo apt-get autoremove -y >/dev/null 2>&1 || true
|
|
|
|
sudo apt-get autoclean -y >/dev/null 2>&1 || true
|
2020-10-14 15:41:12 +00:00
|
|
|
sudo rm -rf "/usr/local/share/boost" >/dev/null 2>&1 || true
|
|
|
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY" >/dev/null 2>&1 || true
|
|
|
|
sudo docker rmi $(docker images -qf "dangling=true") >/dev/null 2>&1 || true
|
2020-10-13 09:29:19 +00:00
|
|
|
df -h
|
2020-09-16 06:56:22 +00:00
|
|
|
- name: Clone source code
|
|
|
|
working-directory: ../../
|
|
|
|
env:
|
|
|
|
REPO_URL: https://github.com/ysurac/openmptcprouter
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
|
|
|
|
run: |
|
2020-10-26 12:55:09 +00:00
|
|
|
git clone $REPO_URL omr
|
|
|
|
if [ "$SOURCE_NAME" != "develop" ]; then
|
|
|
|
cd omr
|
|
|
|
pwd
|
|
|
|
git fetch
|
|
|
|
git checkout master
|
|
|
|
else
|
|
|
|
cd omr
|
|
|
|
git checkout develop
|
|
|
|
fi
|
2020-09-16 06:56:22 +00:00
|
|
|
git pull
|
|
|
|
pwd
|
|
|
|
- name: Build toolchain
|
|
|
|
working-directory: ../../omr
|
|
|
|
env:
|
|
|
|
OMR_FEED_URL: https://github.com/ysurac/openmptcprouter-feeds
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
OMR_TARGET: ${{ matrix.OMR_TARGET }}
|
2021-09-28 15:50:55 +00:00
|
|
|
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
|
2020-09-24 07:16:35 +00:00
|
|
|
OMR_HOST: ${{ secrets.OMR_HOST }}
|
|
|
|
OMR_PORT: ${{ secrets.OMR_PORT }}
|
2020-09-16 06:56:22 +00:00
|
|
|
run: |
|
2021-09-28 15:11:26 +00:00
|
|
|
OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j$(nproc) || OMR_KERNEL="${OMR_KERNEL}" OMR_FEED_SRC="${SOURCE_NAME}" sh build.sh prepare {tools,toolchain}/install -j1 V=s
|
2022-06-01 06:11:57 +00:00
|
|
|
#echo -e "${{ secrets.OMR_PRIVKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build
|
|
|
|
#echo -e "${{ secrets.OMR_PUBKEY }}" > $OMR_TARGET/$OMR_KERNEL/source/key-build.pub
|
2020-09-16 06:56:22 +00:00
|
|
|
- name: Build packages
|
|
|
|
working-directory: ../../omr
|
|
|
|
env:
|
|
|
|
OMR_TARGET: ${{ matrix.OMR_TARGET }}
|
2022-06-01 06:11:57 +00:00
|
|
|
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
|
2020-09-16 06:56:22 +00:00
|
|
|
run: |
|
2022-06-01 06:11:57 +00:00
|
|
|
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source package/{compile,install,index} -j1 V=s
|
2020-09-16 06:56:22 +00:00
|
|
|
- name: Build image
|
|
|
|
working-directory: ../../omr
|
|
|
|
env:
|
|
|
|
OMR_TARGET: ${{ matrix.OMR_TARGET }}
|
2022-06-01 06:11:57 +00:00
|
|
|
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
|
2020-09-16 06:56:22 +00:00
|
|
|
run: |
|
2022-06-01 06:11:57 +00:00
|
|
|
make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j$(nproc) || make IGNORE_ERRORS=m -C $OMR_TARGET/$OMR_KERNEL/source target/install -j1 V=s
|
2020-09-16 06:56:22 +00:00
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v2
|
|
|
|
with:
|
|
|
|
name: ${{ matrix.OMR_TARGET }}
|
2022-06-02 14:35:59 +00:00
|
|
|
path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/${{ matrix.OMR_KERNEL }}/source/bin
|
2020-09-16 06:56:22 +00:00
|
|
|
- if: steps.branch_name.outputs.SOURCE_BRANCH == ''
|
|
|
|
name: Deploy - Create directory
|
2020-09-19 12:44:44 +00:00
|
|
|
uses: ysurac/ssh-action@master
|
2020-09-16 06:56:22 +00:00
|
|
|
env:
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }}
|
|
|
|
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
|
|
|
|
with:
|
|
|
|
command: |
|
|
|
|
mkdir -p deploy/release/${{env.SOURCE_TAG}}/${{matrix.OMR_TARGET}}
|
|
|
|
host: ${{ secrets.OMR_DEPLOY_HOST }}
|
|
|
|
user: deploy
|
|
|
|
port: ${{ secrets.OMR_DEPLOY_PORT }}
|
|
|
|
key: ${{ secrets.PRIVATE_KEY }}
|
2021-01-29 09:51:21 +00:00
|
|
|
args: -tt
|
2020-09-16 06:56:22 +00:00
|
|
|
- if: steps.branch_name.outputs.SOURCE_BRANCH != ''
|
|
|
|
name: Deploy - Create directory
|
2020-09-19 12:44:44 +00:00
|
|
|
uses: ysurac/ssh-action@master
|
2020-09-16 06:56:22 +00:00
|
|
|
env:
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }}
|
|
|
|
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
|
|
|
|
with:
|
|
|
|
command: |
|
2021-09-28 13:11:52 +00:00
|
|
|
mkdir -p deploy/${{env.SOURCE_BRANCH}}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
|
2020-09-16 06:56:22 +00:00
|
|
|
host: ${{ secrets.OMR_DEPLOY_HOST }}
|
|
|
|
user: deploy
|
|
|
|
port: ${{ secrets.OMR_DEPLOY_PORT }}
|
|
|
|
key: ${{ secrets.PRIVATE_KEY }}
|
2021-01-29 09:51:21 +00:00
|
|
|
args: -tt
|
2020-09-16 06:56:22 +00:00
|
|
|
- name: Move binaries for rsync
|
|
|
|
working-directory: ../../omr
|
|
|
|
env:
|
|
|
|
OMR_TARGET: ${{ matrix.OMR_TARGET }}
|
2022-06-01 06:11:57 +00:00
|
|
|
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
|
2020-09-16 06:56:22 +00:00
|
|
|
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
|
|
|
|
run: |
|
2022-06-01 06:11:57 +00:00
|
|
|
mv ${OMR_TARGET}/${OMR_KERNEL}/source/bin ${GITHUB_WORKSPACE}/
|
2020-09-16 06:56:22 +00:00
|
|
|
- if: steps.branch_name.outputs.SOURCE_BRANCH == ''
|
|
|
|
name: Deploy - Upload via rsync
|
2020-09-19 12:44:44 +00:00
|
|
|
uses: ysurac/action-rsync@master
|
2020-09-16 06:56:22 +00:00
|
|
|
env:
|
|
|
|
ARGS: -av --delete-after
|
|
|
|
TARGET: deploy/release/${{steps.branch_name.outputs.SOURCE_TAG}}/${{matrix.OMR_TARGET}}
|
2022-06-01 18:44:52 +00:00
|
|
|
SOURCE: ./${{matrix.OMR_KERNEL}}/bin/
|
2020-09-16 06:56:22 +00:00
|
|
|
KEY: ${{ secrets.PRIVATE_KEY }}
|
|
|
|
USER: deploy
|
|
|
|
HOST: ${{ secrets.OMR_DEPLOY_HOST }}
|
|
|
|
PORT: ${{ secrets.OMR_DEPLOY_PORT }}
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }}
|
|
|
|
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
|
|
|
|
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
|
|
|
|
- if: steps.branch_name.outputs.SOURCE_BRANCH != ''
|
|
|
|
name: Deploy - Upload via rsync
|
2020-09-19 12:44:44 +00:00
|
|
|
uses: ysurac/action-rsync@master
|
2020-09-16 06:56:22 +00:00
|
|
|
env:
|
|
|
|
ARGS: -av --delete-after
|
2021-09-28 13:11:52 +00:00
|
|
|
TARGET: deploy/${{ steps.branch_name.outputs.SOURCE_BRANCH }}/${{matrix.OMR_KERNEL}}/${{matrix.OMR_TARGET}}
|
2022-06-01 18:44:52 +00:00
|
|
|
SOURCE: ./${{matrix.OMR_KERNEL}}/bin/
|
2020-09-16 06:56:22 +00:00
|
|
|
KEY: ${{ secrets.PRIVATE_KEY }}
|
|
|
|
USER: deploy
|
|
|
|
HOST: ${{ secrets.OMR_DEPLOY_HOST }}
|
|
|
|
PORT: ${{ secrets.OMR_DEPLOY_PORT }}
|
|
|
|
SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }}
|
|
|
|
SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }}
|
|
|
|
SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }}
|
|
|
|
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
|
|
|
|
|