From 387f85c15d87f71ec611ed0eee9cf95b29661a14 Mon Sep 17 00:00:00 2001 From: DanyLE Date: Sat, 27 Jul 2024 00:16:50 +0200 Subject: [PATCH] feat(ci): use git tea action instead of Jenkins --- .gitea/workflows/ci.yml | 93 ++++++++++++++++++++++++++++++++++++++ Jenkinsfile | 98 ----------------------------------------- 2 files changed, 93 insertions(+), 98 deletions(-) create mode 100644 .gitea/workflows/ci.yml delete mode 100644 Jenkinsfile diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..243a9e4 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,93 @@ +name: AntOS pipeline +run-name: Building AntOS binaries +on: [push] + +jobs: + build-amd64: + uses: git.iohub.dev/dany/actions/autotools-cross.yml@master + with: + platform: amd64 + build-arm64: + uses: git.iohub.dev/dany/actions/autotools-cross.yml@master + with: + platform: arm64 + + build-arm: + uses: git.iohub.dev/dany/actions/autotools-cross.yml@master + with: + platform: arm + + publish-doc-on-tag: + runs-on: act-runner + if: gitea.event_name == 'push' && contains(gitea.ref, 'refs/tags/') + needs: + container: + image: iohubdev/ci-tools:latest + volumes: + - /opt/public/antos-release/:/public/ + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Update submodule + run: git submodule update --init + - run: mkdir -p build + - name: Build and publish doc and SDK + run: | + make frontend + DOCDIR=/public/doc/ make doc + SDKDIR=/public/sdk/ make sdk + + publish-package-on-tag: + runs-on: act-runner + if: gitea.event_name == 'push' && contains(gitea.ref, 'refs/tags/') + needs: [build-amd64, build-arm64, build-arm] + container: + image: catthehacker/ubuntu:act-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - run: mkdir -p build + - name: get build-amd64 artifacts + uses: actions/download-artifact@master + with: + name: build-amd64 + path: build + - name: get build-arm64 artifacts + uses: actions/download-artifact@master + with: + name: build-arm64 + path: build + - name: get build-arm artifacts + uses: actions/download-artifact@master + with: + name: build-arm + path: build + - name: Set up QEMU + uses: docker/setup-qemu-action@master + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@master + - name: Login to DockerHub + uses: docker/login-action@master + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PAT }} + - name: Env + run: | + printenv + docker info + ls . -al + ls build/ -al + - name: Build and push docker image + run: | + PKG_VERSION="${{ gitea.ref_name }}" + DOCKER_TAG=$PKG_VERSION DOCKER_IMAGE=iohubdev/antos make docker + - name: Publish packages + run: | + rm build/*/opt/ -rf + files=$(find ./build -type f) + PKG_VERSION="${{ gitea.ref_name }}" + URL="https://git.iohub.dev/api/packages/dany/generic/antos/$PKG_VERSION" + curl --request "DELETE" --header "Authorization: token ${{ secrets.GT_API_PAT }}" $URL/ || true + for file in $files; do + curl --header "Authorization: token ${{ secrets.GT_API_PAT }}" --upload-file $file $URL/$(basename $file) + done diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 5860a40..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,98 +0,0 @@ -def build_lib() -{ - sh ''' - set -e - cd $WORKSPACE - mkdir -p build/$arch/ - [ -f Makefile ] && make clean - case $arch in - amd64|x86_64) - HOST= - ;; - aarch64|arm64) - HOST=--host=aarch64-linux-gnu - ;; - armv7l|arm) - HOST=--host=arm-linux-gnueabihf - ;; - *) - echo "Unkown architecture" - exit 1 - ;; - esac - libtoolize - aclocal - autoconf - automake --add-missing - ./configure $HOST --prefix=/usr - DESTDIR=$WORKSPACE/build/$arch make install - ''' -} - -pipeline{ - agent { - docker { - image 'xsangle/ci-tools:latest' - reuseNode true - } - } - options { - // Limit build history with buildDiscarder option: - // daysToKeepStr: history is only kept up to this many days. - // numToKeepStr: only this many build logs are kept. - // artifactDaysToKeepStr: artifacts are only kept up to this many days. - // artifactNumToKeepStr: only this many builds have their artifacts kept. - buildDiscarder(logRotator(numToKeepStr: "1")) - // Enable timestamps in build log console - timestamps() - // Maximum time to run the whole pipeline before canceling it - timeout(time: 1, unit: 'HOURS') - // Use Jenkins ANSI Color Plugin for log console - ansiColor('xterm') - // Limit build concurrency to 1 per branch - disableConcurrentBuilds() - } - stages - { - stage('Prepare') { - steps { - sh''' - make clean || true - rm -rf build/* || true - mkdir build || true - ''' - } - } - stage('Build AMD64') { - steps { - script{ - env.arch = "amd64" - } - build_lib() - } - } - stage('Build ARM64') { - steps { - script{ - env.arch = "arm64" - } - build_lib() - } - } - stage('Build ARM') { - steps { - script{ - env.arch = "arm" - } - build_lib() - } - } - stage("Archive") { - steps{ - script { - archiveArtifacts artifacts: 'build/', fingerprint: true, onlyIfSuccessful: true - } - } - } - } -}