1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-12 18:41:51 +00:00
openmptcprouter-feeds/.github/workflows/main.yml

167 lines
7.3 KiB
YAML
Raw Normal View History

name: openmptcprouter
2020-09-16 06:56:22 +00:00
on: [push]
env:
REPO_URL: 'https://github.com/ysurac/openmptcprouter'
jobs:
build:
strategy:
matrix:
2025-02-10 10:00:19 +00:00
OMR_TARGET: [bpi-r1, bpi-r2, bpi-r3, bpi-r4, bpi-r4-poe, bpi-r64, rpi2, rpi4, wrt32x, espressobin, r2s, rpi3, wrt3200acm, x86, x86_64, ubnt-erx, r4s, r7800, rutx12, rutx50, r5s, qnap-301w, rpi5, z8102ax_128m, z8102ax_64m, gl-mt6000, r5c, z8109ax_128m]
OMR_KERNEL: [6.6, 6.12]
2020-09-16 06:56:22 +00:00
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Branch name
id: branch_name
run: |
2022-10-26 18:09:53 +00:00
echo "SOURCE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT
echo "SOURCE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
echo "SOURCE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
echo "WORKSPACE=${GITHUB_WORKSPACE}" >> $GITHUB_OUTPUT
2020-09-16 06:56:22 +00:00
- name: Prepare
run: |
sudo apt-get update
2024-04-26 09:51:54 +00:00
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc-s1 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 python3-pyelftools llvm clang
- if: matrix.OMR_KERNEL == '6.6'
name: Install LLVM
run: |
sudo apt-get install llvm clang
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 rm -rf /usr/share/dotnet >/dev/null 2>&1 || true
sudo rm -rf /usr/local/lib/android >/dev/null 2>&1 || true
sudo rm -rf /opt/ghc >/dev/null 2>&1 || true
2020-10-14 15:41:12 +00:00
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 }}
OMR_HOST: ${{ secrets.OMR_HOST }}
OMR_PORT: ${{ secrets.OMR_PORT }}
2020-09-16 06:56:22 +00:00
run: |
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
#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 }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
2020-09-16 06:56:22 +00:00
run: |
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 }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
2020-09-16 06:56:22 +00:00
run: |
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@v4
2020-09-16 06:56:22 +00:00
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
2024-02-12 07:20:01 +00:00
overwrite: true
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 }}
OMR_KERNEL: ${{ matrix.OMR_KERNEL }}
2020-09-16 06:56:22 +00:00
GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }}
run: |
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-02 17:11:11 +00:00
SOURCE: ./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-02 17:11:11 +00:00
SOURCE: ./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 }}