Compare commits
14 Commits
v0.0.14
...
a8aefc0524
Author | SHA1 | Date | |
---|---|---|---|
a8aefc0524 | |||
9540030579 | |||
4f9d4260b8 | |||
38b5e6f581 | |||
408bd12302 | |||
fb83d544de | |||
2cb963d4b2 | |||
e74d74cdf6 | |||
5b3d53d253 | |||
36e704f735 | |||
07356d5e55 | |||
52bd6aca93 | |||
2f1770b43b | |||
9d5b5b51ff |
@@ -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
|
||||
|
@@ -65,3 +65,41 @@ 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: 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
|
||||
|
||||
- name: Commit changes
|
||||
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
|
||||
|
||||
- name: Build packages
|
||||
run: |
|
||||
SCRIPT_PATH=/tmp/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"
|
||||
ALR_PKG_FORMAT=archlinux alr build -s "$SCRIPT_PATH"
|
||||
|
||||
- name: Upload assets
|
||||
uses: akkuman/gitea-release-action@v1
|
||||
with:
|
||||
body: ${{ steps.changes.outputs.changes }}
|
||||
files: |-
|
||||
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
|
||||
|
16
README.md
16
README.md
@@ -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). Пожалуйста, просматривайте любые скрипты, которые вы скачиваете из Интернета (включая этот), прежде чем запускать их.
|
||||
|
||||
### Сборка из исходного кода
|
||||
|
||||
@@ -52,9 +52,17 @@ ALR был создан потому, что упаковка программн
|
||||
|
||||
Репозитории alr - это git-хранилища, которые содержат каталог для каждого пакета с файлом `alr.sh` внутри. Файл `alr.sh` содержит все инструкции по сборке пакета и информацию о нем. Скрипты `alr.sh` аналогичны скриптам Aur PKGBUILD.
|
||||
|
||||
Например, репозиторий [Plemya-x/alr-repo](https://gitea.plemya-x.ru/Plemya-x/alr-repo.git) можно подключить так:
|
||||
Например, репозиторий с ALR [Plemya-x/alr-default](https://gitea.plemya-x.ru/Plemya-x/alr-default.git)
|
||||
```
|
||||
alr addrepo --name alr-repo --url https://gitea.plemya-x.ru/Plemya-x/alr-repo.git
|
||||
alr repo add alr-default https://gitea.plemya-x.ru/Plemya-x/alr-default.git
|
||||
```
|
||||
Репозиторий пакетов [Plemya-x/alr-repo](https://gitea.plemya-x.ru/Plemya-x/alr-repo.git) можно подключить так:
|
||||
```
|
||||
alr repo add alr-repo https://gitea.plemya-x.ru/Plemya-x/alr-repo.git
|
||||
```
|
||||
Репозиторий Linux-Gaming [Plemya-x/alr-LG](https://gitea.plemya-x.ru/Plemya-x/alr-LG.git) можно подключить так:
|
||||
```
|
||||
alr repo add alr-LG https://gitea.plemya-x.ru/Plemya-x/alr-linux-gaming.git
|
||||
```
|
||||
|
||||
---
|
||||
|
@@ -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,7 +41,7 @@ func TestFindPkgs(t *testing.T) {
|
||||
err := rs.Pull(e.Ctx, []types.Repo{
|
||||
{
|
||||
Name: "default",
|
||||
URL: "https://gitea.plemya-x.ru/xpamych/xpamych-alr-repo.git",
|
||||
URL: "https://gitea.plemya-x.ru/Plemya-x/alr-default.git",
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
|
@@ -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