Merge branch 'master' into issue-94
This commit is contained in:
@@ -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:
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
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 $@
|
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 $< $@
|
||||||
|
@@ -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). Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их.
|
||||||
|
|
||||||
### Сборка из исходного кода
|
### Сборка из исходного кода
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user