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"
|
||||
@@ -102,4 +108,13 @@ jobs:
|
||||
alr-bin+alr-default_${{ env.VERSION }}-1.red80_amd64.deb \
|
||||
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
|
||||
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