From 60619fa41d183c1fa5193ac20bcddd096cb1a95b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 12 Apr 2024 11:57:39 +0200 Subject: [PATCH] New CircleCI config to test... --- .circleci/config.yml | 840 +++++-------------------------------------- 1 file changed, 94 insertions(+), 746 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index efc3cc25f..c86bbc606 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,751 +1,99 @@ -version: 2 +version: 2.1 +commands: + set_environment_vars: + steps: + - run: + command: | + echo "export REPO_URL=https://github.com/ysurac/openmptcprouter" >> $BASH_ENV jobs: - prepare: - machine: - image: ubuntu-1604:201903-01 - - working_directory: ~/ - - steps: - - run: - name: Prepare - command: | - sudo rm -rf /var/lib/apt/lists/lock - sudo apt-get update - sudo rm -rf /var/lib/apt/lists/lock - sudo apt-get install -yq build-essential git unzip ncurses-dev libz-dev libssl-dev python subversion gettext gawk wget curl rsync perl libelf-dev python3.5 libpython3.5-stdlib liblzma-dev - pyenv global 3.5.2 - - build_x86_64: - machine: - image: ubuntu-1604:201903-01 - + build: environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: x86_64 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - + REPO_URL: https://github.com/ysurac/openmptcprouter + SOURCE_NAME: ${{ steps.branch_name.outputs.SOURCE_NAME }} + GITHUB_WORKSPACE: ${{ steps.branch_name.outputs.WORKSPACE }} + OMR_FEED_URL: https://github.com/ysurac/openmptcprouter-feeds + OMR_TARGET: << parameters.OMR_TARGET >> + OMR_KERNEL: << parameters.OMR_KERNEL >> + OMR_HOST: ${{ secrets.OMR_HOST }} + OMR_PORT: ${{ secrets.OMR_PORT }} + SOURCE_BRANCH: ${{ steps.branch_name.outputs.SOURCE_BRANCH }} + SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} + ARGS: -av --delete-after + TARGET: deploy/release/${{steps.branch_name.outputs.SOURCE_TAG}}/${{matrix.OMR_TARGET}} + SOURCE: ${{ steps.branch_name.outputs.SOURCE_NAME }} + KEY: ${{ secrets.PRIVATE_KEY }} + USER: deploy + HOST: ${{ secrets.OMR_DEPLOY_HOST }} + PORT: ${{ secrets.OMR_DEPLOY_PORT }} + docker: + - image: dkrecruseastamazonawscom/circlecigolangpr:current steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 50m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - sudo apt-get update - sudo apt-get install -yq libelf-dev - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 50m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_x86: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: x86 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_rpi3: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: rpi3 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_espressobin: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: espressobin - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_r2s: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: r2s - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_rpi4: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: rpi4 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_rpi2: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: rpi2 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile package/compile target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_bpi-r2: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: bpi-r2 - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: | - sudo apt-get update - sudo apt-get -yq install swig2.0 - make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_wrt3200acm: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_TARGET: wrt3200acm - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/$OMR_TARGET/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/$OMR_TARGET/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/$OMR_TARGET/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rm -rf ~/openmptcprouter/$OMR_TARGET/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - build_wrt32: - machine: - image: ubuntu-1604:201903-01 - - environment: - - OMR_VERSION: $CIRCLE_TAG - - OMR_KERNEL: 5.4 - - working_directory: ~/ - - steps: - - run: - name: cache - command: | - echo "cache 107 $OMR_KERNEL $OMR_TARGET" > /tmp/cache-target - echo "cache 108 $OMR_KERNEL $OMR_TARGET $OMR_VERSION" > /tmp/cache-version - - - restore_cache: - keys: - - cache-{{ checksum "/tmp/cache-version" }} - - cache-{{ checksum "/tmp/cache-target" }} - - - run: - name: Build toolchain wrt3200acm - no_output_timeout: 40m - command: | - git clone https://github.com/ysurac/openmptcprouter || true - cd openmptcprouter - git checkout ${CIRCLE_BRANCH:-$CIRCLE_TAG} || true - git pull || true - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_TARGET="wrt3200acm" - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/wrt3200acm/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/wrt3200acm/source/key-build.pub - - - save_cache: - key: cache-{{ checksum "/tmp/cache-target" }} - paths: - - openmptcprouter - - - run: - name: Build wrt3200acm - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/wrt3200acm/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy wrt3200acm - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/wrt3200acm/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/wrt3200acm - rm -rf ~/openmptcprouter/wrt3200acm/source/bin - - - save_cache: - key: cache-{{ checksum "/tmp/cache-version" }} - paths: - - openmptcprouter - - - run: - name: Build toolchain wrt32x - no_output_timeout: 40m - command: | - cd ~/openmptcprouter/ - export OMR_PATH="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_FEED_URL="$CIRCLE_REPOSITORY_URL" - export OMR_FEED_SRC="${CIRCLE_BRANCH:-$CIRCLE_TAG}" - export OMR_TARGET="wrt32x" - ln -s wrt3200acm wrt32x - pyenv global 3.5.2 - sh build.sh prepare {tools,toolchain}/install -j2 - echo -e "$OMR_PRIVKEY" > ~/openmptcprouter/wrt32x/source/key-build - echo -e "$OMR_PUBKEY" > ~/openmptcprouter/wrt32x/source/key-build.pub - - - run: - name: Build wrt32x - no_output_timeout: 40m - command: make IGNORE_ERRORS=m -C ~/openmptcprouter/wrt32x/source package/{compile,install,index} target/compile -j2 package/compile -j2 target/install -j2 - - - run: - name: Deploy wrt32x - command: | - ssh -p ${OMR_DEPLOY_PORT:-22} deploy@$OMR_DEPLOY_HOST mkdir -p deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/$OMR_TARGET - rsync -av --delete-after ~/openmptcprouter/wrt32x/source/bin/ -e "ssh -q -p ${OMR_DEPLOY_PORT:-22}" deploy@$OMR_DEPLOY_HOST:deploy/${CIRCLE_BRANCH:-release}/${CIRCLE_TAG:-$OMR_KERNEL}/wrt32x - + - checkout + - set_environment_vars + - run: + command: | + 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 + - run: + name: Prepare + command: | + sudo apt-get update + 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 + - run: + name: Free disk space + command: | + df -h + 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 + 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 + sudo docker rmi $(docker images -qf "dangling=true") >/dev/null 2>&1 || + true + df -h + - run: + command: | + 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 + git pull + pwd + 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 + 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 + 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 + mv ${OMR_TARGET}/${OMR_KERNEL}/source/bin ${GITHUB_WORKSPACE}/ + - store_artifacts: + path: /home/runner/work/omr/${{ matrix.OMR_TARGET }}/${{ matrix.OMR_KERNEL + }}/source/bin workflows: - version: 2 - main: + openmptcprouter: jobs: - - prepare: - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_x86_64: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_x86: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_rpi4: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_rpi3: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_espressobin: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_r2s: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_rpi2: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_bpi-r2: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop - - build_wrt32: - requires: - - prepare - filters: - tags: - only: /.*/ - branches: - only: - - develop + - build: + matrix: + parameters: + OMR_TARGET: ["bpi-r1","bpi-r2","bpi-r64","rpi2","rpi4","wrt32x","espressobin","r2s","rpi3","wrt3200acm","x86","x86_64","ubnt-erx","r4s","r7800","rutx12","rutx50","r5s","qnap-301w","rpi5","z8102ax_128m"] + OMR_KERNEL: ["5.4","6.1","6.6"] + \ No newline at end of file