Merge branch 'master' into issue-94
This commit is contained in:
		| @@ -28,6 +28,7 @@ jobs: | ||||
|  | ||||
|     container: | ||||
|       image: altlinux.space/maks1ms/actions-container-runner:latest | ||||
|       privileged: true | ||||
|  | ||||
|     steps: | ||||
|       - name: Checkout | ||||
| @@ -39,14 +40,15 @@ jobs: | ||||
|         uses: https://github.com/actions/setup-go@v5 | ||||
|         with: | ||||
|           go-version: '1.24' | ||||
|           cache: false | ||||
|  | ||||
|       - name: Cache Podman images | ||||
|         uses: actions/cache@v4 | ||||
|         with: | ||||
|           path: | | ||||
|             ~/.local/share/containers/storage | ||||
|             /var/lib/containers/storage | ||||
|           key: ${{ runner.os }}-primes             | ||||
|       # - name: Cache Podman images | ||||
|       #   uses: actions/cache@v4 | ||||
|       #   with: | ||||
|       #     path: | | ||||
|       #       ~/.local/share/containers/storage | ||||
|       #       /var/lib/containers/storage | ||||
|       #     key: ${{ runner.os }}-primes             | ||||
|  | ||||
|       - name: Run E2E tests | ||||
|         env: | ||||
|   | ||||
| @@ -26,6 +26,8 @@ on: | ||||
| jobs: | ||||
|   pre-commit: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: docker.gitea.com/runner-images:ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|   | ||||
| @@ -45,9 +45,15 @@ jobs: | ||||
|           echo "Version - $version" | ||||
|           echo "VERSION=$version" >> $GITHUB_ENV | ||||
|  | ||||
|       - name: Build alr binary | ||||
|       - name: Prepare for install | ||||
|         run: | | ||||
|           CGO_ENABLED=0 go build -ldflags "-X gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=${{ env.VERSION }}" -o alr | ||||
|           apt-get update && apt-get install -y libcap2-bin bindfs | ||||
|  | ||||
|       - name: Build alr | ||||
|         env: | ||||
|           IGNORE_ROOT_CHECK: 1 | ||||
|         run: | | ||||
|           make build | ||||
|  | ||||
|       - name: Create tar.gz | ||||
|         run: | | ||||
| @@ -65,30 +71,30 @@ jobs: | ||||
|           files: |- | ||||
|             alr-${{ env.VERSION }}-linux-x86_64.tar.gz | ||||
|  | ||||
|       - name: Clone alr-default repository | ||||
|         run: | | ||||
|           git clone https://gitea:${{ secrets.GITEAPUBLIC  }}@gitea.plemya-x.ru/Plemya-x/alr-default.git /tmp/alr-default | ||||
|       - name: Checkout alr-default repository | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           repository: Plemya-x/alr-default | ||||
|           token: ${{ secrets.GITEAPUBLIC }} | ||||
|           path: alr-default | ||||
|  | ||||
|       - name: Update version in alr-bin | ||||
|         run: | | ||||
|           # Замените значения в файле с конфигурацией | ||||
|           sed -i "s/version='[0-9]\+\.[0-9]\+\.[0-9]\+'/version='${{ env.VERSION }}'/g" /tmp/alr-default/alr-bin/alr.sh | ||||
|           sed -i "s/release='[0-9]\+'/release='1'/g" /tmp/alr-default/alr-bin/alr.sh | ||||
|           sed -i "s/version='[0-9]\+\.[0-9]\+\.[0-9]\+'/version='${{ env.VERSION }}'/g" alr-default/alr-bin/alr.sh | ||||
|           sed -i "s/release='[0-9]\+'/release='1'/g" alr-default/alr-bin/alr.sh | ||||
|  | ||||
|       - name: Commit changes | ||||
|       - name: Install alr | ||||
|         run: | | ||||
|           cd /tmp/alr-default | ||||
|           git config user.name "gitea" | ||||
|           git config user.email "admin@plemya-x.ru" | ||||
|           git remote set-url origin https://gitea:${{ secrets.GITEAPUBLIC }}@gitea.plemya-x.ru/Plemya-x/alr-default.git | ||||
|           git remote -v | ||||
|           git add . | ||||
|           git commit -m "Обновление версии до ${{ env.VERSION }}" | ||||
|           git push origin master | ||||
|           make install | ||||
|  | ||||
|           # temporary fix | ||||
|           groupadd wheel | ||||
|           usermod -aG wheel root | ||||
|  | ||||
|       - name: Build packages | ||||
|         run: | | ||||
|           SCRIPT_PATH=/tmp/alr-default/alr-bin/alr.sh | ||||
|           SCRIPT_PATH=alr-default/alr-bin/alr.sh | ||||
|           ALR_DISTRO=altlinux ALR_PKG_FORMAT=rpm alr build -s "$SCRIPT_PATH" | ||||
|           ALR_PKG_FORMAT=rpm alr build -s "$SCRIPT_PATH" | ||||
|           ALR_PKG_FORMAT=deb alr build -s "$SCRIPT_PATH" | ||||
| @@ -103,3 +109,12 @@ jobs: | ||||
|             alr-bin+alr-default-${{ env.VERSION }}-1-x86_64.pkg.tar.zst \ | ||||
|             alr-bin+alr-default-${{ env.VERSION }}-1.red80.x86_64.rpm \ | ||||
|             alr-bin+alr-default-${{ env.VERSION }}-alt1.x86_64.rpm | ||||
|  | ||||
|       - name: Commit changes | ||||
|         run: | | ||||
|           cd alr-default | ||||
|           git config user.name "gitea" | ||||
|           git config user.email "admin@plemya-x.ru" | ||||
|           git add . | ||||
|           git commit -m "Обновление версии до ${{ env.VERSION }}" | ||||
|           git push | ||||
|   | ||||
							
								
								
									
										8
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								Makefile
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ $(BIN): | ||||
| 	go build -ldflags="-X 'gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=$(GIT_VERSION)'" -o $@ | ||||
|  | ||||
| check-no-root: | ||||
| 	@if [[ "$(IGNORE_ROOT_CHECK)" != "1" ]] && [[ "$$(whoami)" == 'root' ]]; then \ | ||||
| 	@if [ "$$IGNORE_ROOT_CHECK" != "1" ] && [ "`whoami`" = "root" ]; then \ | ||||
| 		echo "This target shouldn't run as root" 1>&2; \ | ||||
| 		echo "Set IGNORE_ROOT_CHECK=1 to override" 1>&2; \ | ||||
| 		exit 1; \ | ||||
| @@ -39,6 +39,12 @@ install: \ | ||||
| $(INSTALED_BIN): $(BIN) | ||||
| 	install -Dm755 $< $@ | ||||
| 	setcap cap_setuid,cap_setgid+ep $(INSTALED_BIN) | ||||
| 	@if id alr >/dev/null 2>&1; then \ | ||||
| 		echo "User 'alr' already exists. Skipping."; \ | ||||
| 	else \ | ||||
| 		useradd -r -s /usr/sbin/nologin alr; \ | ||||
| 	fi | ||||
| 	install -d -o alr -g alr -m 755 /var/cache/alr /etc/alr | ||||
|  | ||||
| $(INSTALLED_BASH_COMPLETION): $(BASH_COMPLETION) | ||||
| 	install -Dm755 $< $@ | ||||
|   | ||||
| @@ -20,10 +20,10 @@ ALR написан на чистом Go и после сборки не имее | ||||
| Установочный скрипт автоматически загрузит и установит соответствующий пакет ALR в вашей системе. Чтобы использовать его, просто выполните следующую команду: | ||||
|  | ||||
| ```bash | ||||
| curl -fsSL plemya-x.ru/alr/install.sh | bash | ||||
| curl -fsSL https://gitea.plemya-x.ru/Plemya-x/ALR/raw/branch/master/scripts/install.sh | bash | ||||
| ``` | ||||
|  | ||||
| **ВАЖНО**: При этом скрипт будет загружен и запущен с <https://plemya-x.ru/alr/install.sh>. Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их. | ||||
| **ВАЖНО**: При этом скрипт будет загружен и запущен [скрипт](https://gitea.plemya-x.ru/Plemya-x/ALR/src/branch/master/scripts/install.sh). Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их. | ||||
|  | ||||
| ### Сборка из исходного кода | ||||
|  | ||||
|   | ||||
| @@ -182,7 +182,7 @@ func runTestCommands(t *testing.T, r e2e.Runnable, timeout time.Duration, expect | ||||
| } | ||||
|  | ||||
| const REPO_NAME_FOR_E2E_TESTS = "alr-repo" | ||||
| const REPO_URL_FOR_E2E_TESTS = "https://gitea.plemya-x.ru/Maks1mS/repo-for-tests.git" | ||||
| const REPO_URL_FOR_E2E_TESTS = "https://gitea.plemya-x.ru/Plemya-x/repo-for-tests.git" | ||||
|  | ||||
| func defaultPrepare(t *testing.T, r e2e.Runnable) { | ||||
| 	execShouldNoError(t, r, | ||||
|   | ||||
| @@ -41,10 +41,10 @@ installPkg() { | ||||
|   fi | ||||
|  | ||||
|   case $1 in | ||||
|   pacman) $rootCmd pacman --noconfirm -U ${@:2} ;; | ||||
|   apk) $rootCmd apk add --allow-untrusted ${@:2} ;; | ||||
|   zypper) $rootCmd zypper --no-gpg-checks install ${@:2} ;; | ||||
|   *) $rootCmd $1 install -y ${@:2} ;; | ||||
|   pacman) $rootCmd pacman --noconfirm -U "${@:2}" ;; | ||||
|   apk) $rootCmd apk add --allow-untrusted "${@:2}" ;; | ||||
|   zypper) $rootCmd zypper --no-gpg-checks install "${@:2}" ;; | ||||
|   *) $rootCmd "$1" install -y "${@:2}" ;; | ||||
|   esac | ||||
| } | ||||
|  | ||||
| @@ -88,60 +88,51 @@ else | ||||
| fi | ||||
|  | ||||
| if [ -z "$noPkgMgr" ]; then | ||||
|   info "Получение списка файлов с https://plemya-x.ru/" | ||||
|   pageContent=$(curl -s https://plemya-x.ru/?dir=alr) | ||||
|   info "Получение списка файлов с https://gitea.plemya-x.ru/Plemya-x/ALR/releases" | ||||
|  | ||||
|   # Изменено URL и регулярное выражение для списка файлов | ||||
|   pageContent=$(curl -s https://gitea.plemya-x.ru/Plemya-x/ALR/releases) | ||||
|  | ||||
|   # Извлечение списка файлов из HTML | ||||
|   fileList=$(echo "$pageContent" | grep -oP '(?<=href=").*?(?=")' | grep -E 'alr-bin-.*.(pkg.tar.zst|rpm|deb)') | ||||
|   fileList=$(echo "$pageContent" | grep -oP '(?<=href=").*?(?=")' | grep -E 'alr-bin.*\.(pkg.tar.zst|rpm|deb)') | ||||
|  | ||||
|   echo "Полученный список файлов:" | ||||
|   echo "$fileList" | ||||
| if [ "$pkgMgr" == "pacman" ]; then | ||||
|     latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1) | ||||
| elif [ "$pkgMgr" == "apt" ]; then | ||||
|     latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1) | ||||
| elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then | ||||
|     latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt1' | sort -V | tail -n 1) | ||||
| elif [ "$pkgMgr" == "apt-get" ]; then | ||||
|     latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*-alt[0-9]+\.x86_64\.rpm' | sort -V | tail -n 1) | ||||
|  | ||||
|   if [ "$pkgMgr" == "pacman" ]; then | ||||
|       latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1) | ||||
|   elif [ "$pkgMgr" == "apt" ]; then | ||||
|       latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1) | ||||
|   elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then | ||||
|       latestFile=$(printf "%s\n" "${fileList[@]}" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt[0-9]*' | sort -V | tail -n 1) | ||||
|   elif [ "$pkgMgr" == "apt-get" ]; then | ||||
|       latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*-alt[0-9]+\.x86_64\.rpm' | sort -V | tail -n 1) | ||||
|   else | ||||
|       error "Не поддерживаемый менеджер пакетов для автоматической установки" | ||||
|   fi | ||||
|  | ||||
|   if [ -z "$latestFile" ]; then | ||||
|       error "Не удалось найти соответствующий пакет для $pkgMgr" | ||||
|   fi | ||||
|  | ||||
|   info "Найдена последняя версия ALR: $latestFile" | ||||
|  | ||||
|   fname="$(mktemp -u -p /tmp "alr.XXXXXXXXXX").${pkgFormat}" | ||||
|  | ||||
|   info "Загрузка пакета ALR" | ||||
|   curl -o $fname -L "$latestFile" | ||||
|  | ||||
|   if [ ! -f "$fname" ]; then | ||||
|       error "Ошибка загрузки пакета ALR" | ||||
|   fi | ||||
|  | ||||
|   info "Установка пакета ALR" | ||||
|   installPkg "$pkgMgr" "$fname" | ||||
|  | ||||
|   info "Очистка" | ||||
|   rm "$fname" | ||||
|  | ||||
|   info "Готово!" | ||||
| else | ||||
| error "Не поддерживаемый менеджер пакетов для автоматической установки" | ||||
| fi | ||||
|  | ||||
| if [ -z "$latestFile" ]; then | ||||
| error "Не удалось найти соответствующий пакет для $pkgMgr" | ||||
| fi | ||||
|  | ||||
| info "Найдена последняя версия ALR: $latestFile" | ||||
|  | ||||
| url="https://plemya-x.ru/$latestFile" | ||||
| fname="$(mktemp -u -p /tmp "alr.XXXXXXXXXX").${pkgFormat}" | ||||
|  | ||||
| info "Загрузка пакета ALR" | ||||
| curl -L $url -o $fname | ||||
|  | ||||
| if [ ! -f "$fname" ]; then | ||||
| error "Ошибка загрузки пакета ALR" | ||||
| fi | ||||
|  | ||||
| info "Установка пакета ALR" | ||||
| installPkg $pkgMgr $fname | ||||
|  | ||||
| info "Очистка" | ||||
| rm $fname | ||||
|  | ||||
| info "Готово!" | ||||
|  | ||||
| else | ||||
| info "Клонирование репозитория ALR" | ||||
| git clone https://gitea.plemya-x.ru/xpamych/ALR.git /tmp/alr | ||||
|  | ||||
| info "Установка ALR" | ||||
| cd /tmp/alr | ||||
| sudo make install | ||||
|  | ||||
| info "Очистка репозитория ALR" | ||||
| rm -rf /tmp/alr | ||||
|  | ||||
| info "Все задачи выполнены!" | ||||
|   echo "Не найден поддерживаемый менеджер пакетов. О_о" | ||||
| fi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user