Merge branch 'master' into issue-94
Some checks failed
Pre-commit / pre-commit (pull_request) Successful in 6m14s
E2E / tests (pull_request) Failing after 2m33s

This commit is contained in:
2025-06-05 14:33:47 +00:00
7 changed files with 99 additions and 83 deletions

View File

@@ -28,6 +28,7 @@ jobs:
container: container:
image: altlinux.space/maks1ms/actions-container-runner:latest image: altlinux.space/maks1ms/actions-container-runner:latest
privileged: true
steps: steps:
- name: Checkout - name: Checkout
@@ -39,14 +40,15 @@ jobs:
uses: https://github.com/actions/setup-go@v5 uses: https://github.com/actions/setup-go@v5
with: with:
go-version: '1.24' go-version: '1.24'
cache: false
- name: Cache Podman images # - name: Cache Podman images
uses: actions/cache@v4 # uses: actions/cache@v4
with: # with:
path: | # path: |
~/.local/share/containers/storage # ~/.local/share/containers/storage
/var/lib/containers/storage # /var/lib/containers/storage
key: ${{ runner.os }}-primes # key: ${{ runner.os }}-primes
- name: Run E2E tests - name: Run E2E tests
env: env:

View File

@@ -26,6 +26,8 @@ on:
jobs: jobs:
pre-commit: pre-commit:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: docker.gitea.com/runner-images:ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout

View File

@@ -45,9 +45,15 @@ jobs:
echo "Version - $version" echo "Version - $version"
echo "VERSION=$version" >> $GITHUB_ENV echo "VERSION=$version" >> $GITHUB_ENV
- name: Build alr binary - name: Prepare for install
run: | 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 - name: Create tar.gz
run: | run: |
@@ -65,30 +71,30 @@ jobs:
files: |- files: |-
alr-${{ env.VERSION }}-linux-x86_64.tar.gz alr-${{ env.VERSION }}-linux-x86_64.tar.gz
- name: Clone alr-default repository - name: Checkout alr-default repository
run: | uses: actions/checkout@v4
git clone https://gitea:${{ secrets.GITEAPUBLIC }}@gitea.plemya-x.ru/Plemya-x/alr-default.git /tmp/alr-default with:
repository: Plemya-x/alr-default
token: ${{ secrets.GITEAPUBLIC }}
path: alr-default
- name: Update version in alr-bin - name: Update version in alr-bin
run: | 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/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" /tmp/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: | run: |
cd /tmp/alr-default make install
git config user.name "gitea"
git config user.email "admin@plemya-x.ru" # temporary fix
git remote set-url origin https://gitea:${{ secrets.GITEAPUBLIC }}@gitea.plemya-x.ru/Plemya-x/alr-default.git groupadd wheel
git remote -v usermod -aG wheel root
git add .
git commit -m "Обновление версии до ${{ env.VERSION }}"
git push origin master
- name: Build packages - name: Build packages
run: | 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_DISTRO=altlinux ALR_PKG_FORMAT=rpm alr build -s "$SCRIPT_PATH"
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" 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-x86_64.pkg.tar.zst \
alr-bin+alr-default-${{ env.VERSION }}-1.red80.x86_64.rpm \ alr-bin+alr-default-${{ env.VERSION }}-1.red80.x86_64.rpm \
alr-bin+alr-default-${{ env.VERSION }}-alt1.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

View File

@@ -24,7 +24,7 @@ $(BIN):
go build -ldflags="-X 'gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=$(GIT_VERSION)'" -o $@ go build -ldflags="-X 'gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=$(GIT_VERSION)'" -o $@
check-no-root: 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 "This target shouldn't run as root" 1>&2; \
echo "Set IGNORE_ROOT_CHECK=1 to override" 1>&2; \ echo "Set IGNORE_ROOT_CHECK=1 to override" 1>&2; \
exit 1; \ exit 1; \
@@ -39,6 +39,12 @@ install: \
$(INSTALED_BIN): $(BIN) $(INSTALED_BIN): $(BIN)
install -Dm755 $< $@ install -Dm755 $< $@
setcap cap_setuid,cap_setgid+ep $(INSTALED_BIN) 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) $(INSTALLED_BASH_COMPLETION): $(BASH_COMPLETION)
install -Dm755 $< $@ install -Dm755 $< $@

View File

@@ -20,10 +20,10 @@ ALR написан на чистом Go и после сборки не имее
Установочный скрипт автоматически загрузит и установит соответствующий пакет ALR в вашей системе. Чтобы использовать его, просто выполните следующую команду: Установочный скрипт автоматически загрузит и установит соответствующий пакет ALR в вашей системе. Чтобы использовать его, просто выполните следующую команду:
```bash ```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). Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их.
### Сборка из исходного кода ### Сборка из исходного кода

View File

@@ -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_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) { func defaultPrepare(t *testing.T, r e2e.Runnable) {
execShouldNoError(t, r, execShouldNoError(t, r,

View File

@@ -41,10 +41,10 @@ installPkg() {
fi fi
case $1 in case $1 in
pacman) $rootCmd pacman --noconfirm -U ${@:2} ;; pacman) $rootCmd pacman --noconfirm -U "${@:2}" ;;
apk) $rootCmd apk add --allow-untrusted ${@:2} ;; apk) $rootCmd apk add --allow-untrusted "${@:2}" ;;
zypper) $rootCmd zypper --no-gpg-checks install ${@:2} ;; zypper) $rootCmd zypper --no-gpg-checks install "${@:2}" ;;
*) $rootCmd $1 install -y ${@:2} ;; *) $rootCmd "$1" install -y "${@:2}" ;;
esac esac
} }
@@ -88,60 +88,51 @@ else
fi fi
if [ -z "$noPkgMgr" ]; then if [ -z "$noPkgMgr" ]; then
info "Получение списка файлов с https://plemya-x.ru/" info "Получение списка файлов с https://gitea.plemya-x.ru/Plemya-x/ALR/releases"
pageContent=$(curl -s https://plemya-x.ru/?dir=alr)
# Изменено URL и регулярное выражение для списка файлов
pageContent=$(curl -s https://gitea.plemya-x.ru/Plemya-x/ALR/releases)
# Извлечение списка файлов из HTML # Извлечение списка файлов из 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 "Полученный список файлов:"
echo "$fileList" echo "$fileList"
if [ "$pkgMgr" == "pacman" ]; then
latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1) if [ "$pkgMgr" == "pacman" ]; then
elif [ "$pkgMgr" == "apt" ]; then latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.pkg\.tar\.zst' | sort -V | tail -n 1)
latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1) elif [ "$pkgMgr" == "apt" ]; then
elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.amd64\.deb' | sort -V | tail -n 1)
latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt1' | sort -V | tail -n 1) elif [[ "$pkgMgr" == "dnf" || "$pkgMgr" == "yum" || "$pkgMgr" == "zypper" ]]; then
elif [ "$pkgMgr" == "apt-get" ]; then latestFile=$(printf "%s\n" "${fileList[@]}" | grep -E 'alr-bin-.*\.x86_64\.rpm' | grep -v 'alt[0-9]*' | sort -V | tail -n 1)
latestFile=$(echo "$fileList" | grep -E 'alr-bin-.*-alt[0-9]+\.x86_64\.rpm' | 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 else
error "Не поддерживаемый менеджер пакетов для автоматической установки" echo "Не найден поддерживаемый менеджер пакетов. О_о"
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 "Все задачи выполнены!"
fi fi