From 653991b5cecda949488148efe226342085610fbc Mon Sep 17 00:00:00 2001 From: "s.galanskiy" Date: Wed, 2 Jul 2025 14:35:24 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20.woodpecker/.woodpecker.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .woodpecker/.woodpecker.yml | 125 ++++++++++++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 5 deletions(-) diff --git a/.woodpecker/.woodpecker.yml b/.woodpecker/.woodpecker.yml index 8f1531d..6230eac 100644 --- a/.woodpecker/.woodpecker.yml +++ b/.woodpecker/.woodpecker.yml @@ -6,16 +6,131 @@ steps: checkout: image: debian:latest environment: + GONETS: + from_secret: GONETS commands: + # ПОДГОТОВКА ГИТА И КЛОНИРОВАНИЕ GONETS - apt update - apt install -y git git-lfs - git lfs install + + # УСТАНОВКА НЕОБХОДИМЫХ ЗАВИСИМОСТЕЙ НА СИСТЕМЕ + - apt update + - apt install -y python3 openssh-server tree libnss3 libnss3-dev libnspr4 libnspr4-dev libasound2 libasound2-dev python3.11-venv python3-pip python3-poetry nodejs npm debhelper devscripts build-essential fakeroot dh-make dpkg-dev cmake libgirepository1.0-dev gobject-introspection libcairo2-dev pkg-config python3-dev libdbus-1-dev + - python3 --version + - node -v + - npm -v + + # ПОДГОТОВКА СПИСКА PYTHON ЗАВИСИМОСТЕЙ GONETS + - rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED + - rm -rf /root/.local/share/pypoetry + - rm -rf /root/.poetry + - rm -rf /usr/bin/poetry + - pip install pipx + - pipx ensurepath + - pipx install poetry + - echo 'export PATH="$HOME/.local/bin:$PATH"' >> /root/.bashrc + - . /root/.bashrc + - poetry --version + - cd SRV + - poetry env activate + - poetry add poetry-plugin-export + - poetry install + - poetry self update + - rm -f requirements.txt + - poetry run poetry export -f requirements.txt --output requirements.txt --without-hashes + + # ПОДГОТОВКА И СБОРКА FRONTEND ЧАСТИ GONETS + - pwd + - cd .. + - pwd + - cd FRONT/DEV + - pwd + - npm install + - npm run package + - cd dist/gonets-linux-x64/resources/app + - pwd + - npm run build + - sed -i 's#href="/assets/#href="./assets/#g' dist/index.html + - sed -i 's#src="/assets/#src="./assets/#g' dist/index.html + - cd ../../../../.. + - pwd + - rm -rf BUILD/* + - cp -r DEV/dist/gonets-linux-x64/* BUILD/ + - rm -rf DEV + + # ИНИЦИАЛИЗАЦИЯ DEBIAN КОНФИГУРАЦИЙ ДЛЯ СБОРКИ + - cd .. + - pwd + - cd .. + - pwd + - mv gonets gonets-0.1 + - cd gonets-0.1 + - pwd + - ls + - DEBEMAIL="devteam@gossys.dev" DEBFULLNAME="GOSSYS LLC" dh_make --single -y --createorig + - cd debian/ + - rm -f *.ex + - rm -f README.* + + # КЛОНИРОВАНИЕ НЕОБХОДИМЫХ ШАБЛОНОВ КОНФИГОВ ДЕБИАНА ДЛЯ СБОРКИ + - mkdir -p /woodpecker/src/dev.gossys.dev/s.galanskiy/templates + - git clone https://s.galanskiy:${GONETS}@dev.gossys.dev/s.galanskiy/gonets-debian-template.git /woodpecker/src/dev.gossys.dev/s.galanskiy/templates + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/changelog /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/control /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/copyright /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/install /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/postinst /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/postrm /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + - mv /woodpecker/src/dev.gossys.dev/s.galanskiy/templates/rules /woodpecker/src/dev.gossys.dev/s.galanskiy/gonets-0.1/debian/ + + # СБОРКА ДЕБИАН ПАКЕТА + - cd .. + - pwd + - dpkg-buildpackage -us -uc -b + + # ИЗВЛЕЧЕНИЕ ВЕРСИИ ПАКЕТА ДЛЯ КОММИТА + - VERSION=$(dpkg-parsechangelog -l./debian/changelog --show-field Version) + - echo "VERSION=$VERSION" > version.env + + # КОММИТ И ТЕГ НА ВЕТКУ DEVELOP + - . ./version.env - git config user.name "s.galanskiy" - git config user.email "s.galanskiy@gossys.dev" - - git remote -v - - git remote set-url origin https://s.galanskiy:b4785198d18200dfed812dc4299575f736255bd7@dev.gossys.dev/s.galanskiy/gonets.git - - git ls-remote origin - git fetch --all + - git branch -r + - git reset --hard + - git clean -fd - git checkout develop - - git commit --allow-empty -m "Тестовый коммит" - - git push -u origin develop \ No newline at end of file + - pwd + - git add . + - git commit -am "Релиз $VERSION" + - git tag -f "v$VERSION" + - git push "https://s.galanskiy:b4785198d18200dfed812dc4299575f736255bd7@dev.gossys.dev/s.galanskiy/gonets.git" develop + - git push -f https://s.galanskiy:b4785198d18200dfed812dc4299575f736255bd7@dev.gossys.dev/s.galanskiy/gonets.git "v$VERSION" + + release-upload: + image: curlimages/curl:latest + environment: + GONETS: + from_secret: GONETS + commands: + - VERSION=$(dpkg-parsechangelog -l./debian/changelog --show-field Version) + - TAG="v$VERSION" + - DEB_PATH="../gonets_${VERSION}_amd64.deb" + - | + curl -s -X POST "https://dev.gossys.dev/api/v1/repos/s.galanskiy/gonets/releases" \ + -H "Authorization: token ${FORGEJO_TOKEN}" \ + -H "Content-Type: application/json" \ + -d '{ + "tag_name": "'$TAG'", + "name": "Релиз '$TAG'", + "body": "Сборка .deb пакета для версии '$TAG'", + "draft": false, + "prerelease": true + }' || true + - | + curl -s -X POST \ + -H "Authorization: token ${GONETS}" \ + -F "attachment=@$DEB_PATH" \ + "https://dev.gossys.dev/api/v1/repos/s.galanskiy/gonets/releases/$TAG/assets"