From bb3105ddfa9b42c756c4c7df56103ddf94204f1e Mon Sep 17 00:00:00 2001 From: Dany LE Date: Wed, 24 Jul 2024 18:24:52 +0200 Subject: [PATCH] feat(ci): allow to publish packages on tagging --- .gitea/workflows/ci.yml | 54 ++++++++++++++++ Jenkinsfile | 134 ---------------------------------------- README.md | 2 +- scripts/mkdocker.sh | 1 + 4 files changed, 56 insertions(+), 135 deletions(-) delete mode 100644 Jenkinsfile diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 246bdc2..d274d97 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -16,3 +16,57 @@ jobs: uses: ./.gitea/workflows/build-bin.yml with: platform: arm + + publish-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" + for file in $files; do + curl --header "Authorization: token ${{ secrets.GT_API_PAT }}" -v --upload-file $file $URL/$(basename $file) + done \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index cfb2802..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,134 +0,0 @@ -pipeline { - agent { - node { label'workstation' } - } - 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: 3, unit: 'HOURS') - // Use Jenkins ANSI Color Plugin for log console - ansiColor('xterm') - // Limit build concurrency to 1 per branch - disableConcurrentBuilds() - } - stages - { - stage('Prepare dependencies') { - steps { - sh''' - cd antd/luasocket && git stash || true - cd $WORKSPACE - git submodule update --init - make clean || true - rm -rf build/* || true - mkdir build || true - ''' - } - } - stage('Build AMD64)') { - agent { - docker { - image 'xsangle/ci-tools:latest' - reuseNode true - args ' --device /dev/fuse --privileged ' - } - } - steps { - sh''' - DESTDIR=$(realpath build) \ - ARCH=amd64 \ - RUSTUP_HOME=/opt/rust/rustup \ - CARGO_HOME=/opt/rust/cargo \ - make all deb appimg - ''' - } - } - stage('Build ARM64)') { - agent { - docker { - image 'xsangle/ci-tools:latest' - reuseNode true - args ' --device /dev/fuse --privileged ' - } - } - steps { - sh''' - DESTDIR=$(realpath build) \ - ARCH=arm64 \ - RUSTUP_HOME=/opt/rust/rustup \ - CARGO_HOME=/opt/rust/cargo \ - make all deb appimg - ''' - } - } - stage('Build ARM)') { - agent { - docker { - image 'xsangle/ci-tools:latest' - reuseNode true - args ' --device /dev/fuse --privileged ' - } - } - steps { - sh''' - DESTDIR=$(realpath build) \ - ARCH=arm \ - RUSTUP_HOME=/opt/rust/rustup \ - CARGO_HOME=/opt/rust/cargo \ - make all deb appimg - ''' - } - } - stage('Checking build)') { - steps { - sh''' - ./scripts/ckarch.sh build - ''' - } - } - stage('Build docker') { - steps { - script { - if (env.TAG_NAME) { - sh''' - DOCKER_TAG=$TAG_NAME DOCKER_IMAGE=iohubdev/antos make docker - ''' - } else { - echo "Regular commit doing nothing" - } - } - } - } - stage('Copy doc') { - steps { - sh''' - DOCDIR=/home/dany/public/antos-release/doc/ make doc - SDKDIR=/home/dany/public/antos-release/sdk/ make sdk - ''' - } - } - stage('Copy Binaries') { - steps { - sh''' - BINDIR="/home/dany/public/antos-release/binaries/" - find ./build/ -name "*.deb" -exec install -Dm 755 "{}" "$BINDIR/deb" \\; - find ./build/ -name "*.AppImage" -exec install -Dm 755 "{}" "$BINDIR/appimg" \\; - ''' - } - } - stage('Archive') { - steps { - script { - archiveArtifacts artifacts: 'build/', fingerprint: true - } - } - } - } -} diff --git a/README.md b/README.md index 6a09477..7c3c193 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ![https://github.com/antos-rde/antos/raw/master/antos-64.png](https://github.com/antos-rde/antos/raw/master/antos-64.png) antOS v2.0.0 -![https://git.iohub.dev/dany/antos/actions/workflows/ci.yml/badge.svg?branch=ci](https://git.iohub.dev/dany/antos/actions/workflows/ci.yml/badge.svg?branch=ci) +![https://git.iohub.dev/dany/antos/actions/workflows/ci.yml/badge.svg?branch=master](https://git.iohub.dev/dany/antos/actions/workflows/ci.yml/badge.svg?branch=master) AntOS is a web-based remote desktop environment that provides an all-in-one solution for setting up a cloud-based, self-hosted working environment. It features a backend API and services, a front-end web-based window manager, application APIs, a GUI toolkit, and file system abstractions. It also includes an application store and an SDK for in-browser application development, deployment, and packaging. AntOS is designed to work across devices, including desktop computers and mobile devices. diff --git a/scripts/mkdocker.sh b/scripts/mkdocker.sh index 6751bbf..2b2de69 100755 --- a/scripts/mkdocker.sh +++ b/scripts/mkdocker.sh @@ -1,6 +1,7 @@ #!/bin/bash set -e +set -x DOCKER_IMAGE=$1