This commit is contained in:
@@ -1,61 +1,87 @@
|
|||||||
name: Gitea Actions Demo
|
name: Gitea Actions
|
||||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
run-name: ${{ gitea.actor }} тестирует Gitea Actions
|
||||||
on: [push]
|
on: [push]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Explore-Gitea-Actions:
|
Explore-Gitea-Actions:
|
||||||
runs-on: tcl-tk-builder
|
runs-on: tcl-tk-builder # Ваш корректный runner
|
||||||
steps:
|
steps:
|
||||||
- name: Build the DEB-packages
|
- name: Клонирование репозитория
|
||||||
run: |
|
run: |
|
||||||
git clone ${{ vars.main_url }}${{ gitea.repository }}
|
git clone "${{ vars.main_url }}${{ gitea.repository }}.git" .
|
||||||
pwd
|
pwd
|
||||||
|
ls -la
|
||||||
|
|
||||||
|
- name: Сборка DEB-пакетов
|
||||||
|
run: |
|
||||||
cd projman/debian
|
cd projman/debian
|
||||||
./build-deb-projman.sh
|
./build-deb-projman.sh
|
||||||
cd ../openbsd
|
cd ../openbsd
|
||||||
./build-package-bsd.sh
|
./build-package-bsd.sh
|
||||||
cd ../../
|
cd ../../
|
||||||
curl --user ${{secrets.USER}}:${{secrets.API_TOKEN}} --upload-file "$(ls -1| grep projman | grep -E 'deb$')" ${{vars.main_url}}api/packages/${{vars.user}}/debian/pool/bookworm/main/upload
|
|
||||||
- run: echo "This job's status is ${{ job.status }}."
|
|
||||||
|
|
||||||
- name: Create release
|
# Ищем DEB файл
|
||||||
|
DEB_FILE=$(find . -name "*.deb" -type f | head -1)
|
||||||
|
echo "DEB файл: $DEB_FILE"
|
||||||
|
|
||||||
|
# Загружаем в репозиторий пакетов
|
||||||
|
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
|
--upload-file "$DEB_FILE" \
|
||||||
|
"${{ vars.main_url }}api/packages/${{ vars.user }}/debian/pool/bookworm/main/upload?version=$(basename "$DEB_FILE" | grep -o '[0-9].*[0-9]')"
|
||||||
|
|
||||||
|
- name: Извлечение информации о версии
|
||||||
|
id: version_info
|
||||||
run: |
|
run: |
|
||||||
export VERSION=$(grep Version projman.tcl | grep -oE '\b[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}\b')
|
VERSION=$(grep "Version" projman.tcl | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
|
||||||
export RELEASE=$(grep "# Release" projman.tcl | grep -oE '[0-9A-Za-z]+$')
|
RELEASE=$(grep "# Release" projman.tcl | tail -1 | grep -oE '[0-9A-Za-z]+$')
|
||||||
# Создаем релиз через API
|
echo "VERSION=$VERSION" >> $GITEA_OUTPUT
|
||||||
curl -X POST \
|
echo "RELEASE=$RELEASE" >> $GITEA_OUTPUT
|
||||||
|
echo "Извлечено: Version=$VERSION, Release=$RELEASE"
|
||||||
|
|
||||||
|
- name: Создание релиза (только для тегов)
|
||||||
|
if: startsWith(gitea.ref, 'refs/tags/')
|
||||||
|
id: create_release
|
||||||
|
run: |
|
||||||
|
TAG_NAME="${GITEA_REF#refs/tags/}"
|
||||||
|
echo "Создание релиза для тега: $TAG_NAME"
|
||||||
|
|
||||||
|
# Создаем релиз через API Gitea
|
||||||
|
response=$(curl -s -X POST \
|
||||||
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
-u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
"tag_name": "'"${{ gitea.ref_name }}"'",
|
"tag_name": "'"$TAG_NAME"'",
|
||||||
"name": "Release '"${{ gitea.ref_name }}" ${VERSION} - ${RELEASE}'",
|
"name": "Projman '"$VERSION"' (Release '"$RELEASE"')",
|
||||||
"body": "Automated release for '"${{ gitea.ref_name }}"'",
|
"body": "Автоматический релиз\\n\\nВерсия: '"$VERSION"'\\nРевизия: '"$RELEASE"'\\n\\nСобран: '"$(date)"'",
|
||||||
"draft": false,
|
"draft": false,
|
||||||
"prerelease": false
|
"prerelease": false
|
||||||
}' \
|
}' \
|
||||||
"${{vars.main_url}}/api/v1/repos/${{ gitea.repository }}/releases"
|
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases")
|
||||||
|
|
||||||
- name: Get release ID
|
echo "Ответ API: $response"
|
||||||
id: release_info
|
|
||||||
|
# Извлекаем ID созданного релиза
|
||||||
|
RELEASE_ID=$(echo "$response" | grep -o '"id":[0-9]*' | cut -d: -f2)
|
||||||
|
echo "ID релиза: $RELEASE_ID"
|
||||||
|
echo "RELEASE_ID=$RELEASE_ID" >> $GITEA_OUTPUT
|
||||||
|
|
||||||
|
- name: Загрузка пакетов в релиз
|
||||||
|
if: steps.create_release.outputs.RELEASE_ID != ''
|
||||||
run: |
|
run: |
|
||||||
response=$(curl -s -u "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
# Находим все собранные пакеты
|
||||||
"${{vars.main_url}}/api/v1/repos/${{ gitea.repository }}/releases/tags/${{ gitea.ref_name }}")
|
for package in $(find . -name "projman*" \( -name "*.deb" -o -name "*.tgz" \) -type f); do
|
||||||
|
echo "Загрузка пакета: $(basename "$package")"
|
||||||
|
|
||||||
id=$(echo $response | grep -o '"id":[0-9]*' | cut -d':' -f2 | head -n1)
|
curl -v --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
||||||
echo "id=$id" >> $GITHUB_OUTPUT
|
--upload-file "$package" \
|
||||||
|
"${{ vars.main_url }}api/v1/repos/${{ gitea.repository }}/releases/${{ steps.create_release.outputs.RELEASE_ID }}/assets?name=$(basename "$package")"
|
||||||
|
|
||||||
- name: Upload Linux package
|
echo "Пакет загружен: $(basename "$package")"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Статус выполнения
|
||||||
run: |
|
run: |
|
||||||
export DEB=$(ls -1| grep projman | grep -E 'deb$')
|
echo "Статус задания: ${{ job.status }}"
|
||||||
echo "${DEB}"
|
echo "Текущая директория: $(pwd)"
|
||||||
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
echo "Содержимое:"
|
||||||
--upload-file "${DEB}" \
|
ls -la
|
||||||
"${{vars.main_url}}/api/v1/repos/${{ gitea.repository }}/releases/${{ steps.release_info.outputs.id }}/assets?name=${DEB}"
|
|
||||||
|
|
||||||
- name: Upload OpenBSD package
|
|
||||||
run: |
|
|
||||||
export PKG=$(ls -1| grep projman | grep -E 'tgz$')
|
|
||||||
echo ${PKG}
|
|
||||||
curl --user "${{ secrets.USER }}:${{ secrets.API_TOKEN }}" \
|
|
||||||
--upload-file "${PKG}" \
|
|
||||||
"${{vars.main_url}}/api/v1/repos/${{ gitea.repository }}/releases/${{ steps.release_info.outputs.id }}/assets?name=${PKG}"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user