Compare commits
35 commits
2023-02-24
...
main
Author | SHA1 | Date | |
---|---|---|---|
75688c852c | |||
68b807832e | |||
c20ef08e74 | |||
447b8f25cf | |||
9c7dcd99c5 | |||
f367fc1e9c | |||
eb983625d6 | |||
32eeeb4b37 | |||
|
a6c8f4f7c3 | ||
|
9a9b52f84e | ||
|
98674ac555 | ||
ff6abe6f79 | |||
|
1c664f79eb | ||
1b51cd8d33 | |||
b32963363c | |||
47b849e8c0 | |||
a2c93bab8e | |||
b463b83017 | |||
c0f3e506c0 | |||
|
c0c22e76bc | ||
|
5ffda4d2a6 | ||
eb631b5f2d | |||
8da382b0f5 | |||
5b18eda7b0 | |||
dadac6de36 | |||
|
5965d28379 | ||
|
e6965035e0 | ||
|
f42ec3d7e5 | ||
|
a6aca078da | ||
|
6b1d0e15ca | ||
|
1591c5ac21 | ||
fe6e7df76a | |||
3802cfe81e | |||
|
f8e9d909fa | ||
|
421d5c3c71 |
12 changed files with 221 additions and 73 deletions
18
.github/workflows/build.yaml
vendored
18
.github/workflows/build.yaml
vendored
|
@ -9,8 +9,11 @@ env:
|
||||||
api_key: ${{ secrets.GITHUB_TOKEN }}
|
api_key: ${{ secrets.GITHUB_TOKEN }}
|
||||||
name: ${{ github.event.repository.name }}
|
name: ${{ github.event.repository.name }}
|
||||||
release_name: ${{ github.ref_name }}
|
release_name: ${{ github.ref_name }}
|
||||||
|
GH_TOKEN: ${{ github.token }}
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: archlinux:latest
|
image: archlinux:latest
|
||||||
|
@ -18,10 +21,17 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Install Packages via Pacman
|
- name: Install Packages via Pacman
|
||||||
run: pacman -Sy; pacman --noconfirm -S git archiso python python-pip
|
run: pacman -Sy; pacman --noconfirm -S git archiso python python-pygithub github-cli reflector p7zip
|
||||||
- name: Install Python packages via pip
|
- name: Change Arch docker mirror
|
||||||
run: pip install -U pip pyGithub
|
run: reflector -c "US" -f 12 -l 10 -n 12 --save /etc/pacman.d/mirrorlist
|
||||||
- name: Build image
|
- name: Build image
|
||||||
run: mkarchiso -v iso/
|
run: mkarchiso -v iso/
|
||||||
- name: Upload iso to the release
|
- name: Upload iso to the release
|
||||||
run: python tools/upload_assest.py
|
run: |
|
||||||
|
cd ./out
|
||||||
|
mkdir iso_parts
|
||||||
|
# split -d -b 2000M "$(ls *.iso)" iso_parts/"$(ls *.iso)"_part
|
||||||
|
#zip -s 2000m iso_parts/"$(ls *.iso)".zip "$(ls *.iso)"
|
||||||
|
7z -v1000m a iso_parts/"$(ls *.iso)".zip "$(ls *.iso)"
|
||||||
|
md5sum iso_parts/* > iso_parts/md5sums.txt
|
||||||
|
gh release upload ${{ github.event.release.tag_name }} ./iso_parts/* -R ${{ github.repository }}
|
||||||
|
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
out/
|
||||||
|
work/
|
|
@ -1 +1 @@
|
||||||
# Parch-os iso template
|
# Parch Linux cutefish
|
||||||
|
|
60
build.sh
Executable file
60
build.sh
Executable file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
main() {
|
||||||
|
set -e
|
||||||
|
local Black DarkGray Red LightRed Green LightGreen Brown Yellow Blue LightBlue Purple Light Purple Cyan LightCyan LightGray White reset
|
||||||
|
## save colors
|
||||||
|
Black="\e[0;30m"
|
||||||
|
DarkGray="\e[1;30m"
|
||||||
|
Red="\e[0;31m"
|
||||||
|
LightRed="\e[1;31m"
|
||||||
|
Green="\e[0;32m"
|
||||||
|
LightGreen="\e[1;32m"
|
||||||
|
Brown="\e[0;33m"
|
||||||
|
Yellow="\e[1;33m"
|
||||||
|
Blue="\e[0;34m"
|
||||||
|
LightBlue="\e[1;34m"
|
||||||
|
Purple="\e[0;35m"
|
||||||
|
Light=Purple="\e[1;35m"
|
||||||
|
Cyan="\e[0;36m"
|
||||||
|
LightCyan="\e[1;36m"
|
||||||
|
LightGray="\e[0;37m"
|
||||||
|
White="\e[1;37m"
|
||||||
|
reset="\e[0m"
|
||||||
|
local reponame
|
||||||
|
reponame=${PWD##*/}
|
||||||
|
|
||||||
|
echo -e "$Green### start install packeges for build $reponame ###$reset"
|
||||||
|
echo -e "$Brown### checking your os ###$reset"
|
||||||
|
if type pacman >/dev/null 2>&1;then
|
||||||
|
if [ "$(id -u)" != "0" ]; then
|
||||||
|
echo -e "$Red### you are not in root$reset"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
install
|
||||||
|
echo -e "$Blue### install complete ###$reset"
|
||||||
|
echo -e "$Green### start build $reponame with archiso ###$reset"
|
||||||
|
build
|
||||||
|
makezip
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "$Red###os cant supported###$reset"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
install() {
|
||||||
|
set -e
|
||||||
|
pacman -Sy; pacman --noconfirm -S --needed git archiso github-cli p7zip
|
||||||
|
}
|
||||||
|
build() {
|
||||||
|
set -e
|
||||||
|
mkarchiso -v iso/
|
||||||
|
}
|
||||||
|
makezip() {
|
||||||
|
cd out
|
||||||
|
7z -v500m a "$(ls *.iso)".zip "$(ls *.iso)"
|
||||||
|
md5sum * > md5sums.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
main
|
30
iso/airootfs/etc/pacman.d/mirrorlist
Normal file
30
iso/airootfs/etc/pacman.d/mirrorlist
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
################################################################################
|
||||||
|
################# Arch Linux mirrorlist generated by Reflector #################
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# With: reflector @/etc/xdg/reflector/reflector.conf
|
||||||
|
# When: 2023-11-09 08:09:08 UTC
|
||||||
|
# From: https://archlinux.org/mirrors/status/json/
|
||||||
|
# Retrieved: 2023-11-09 08:06:51 UTC
|
||||||
|
# Last Check: 2023-11-09 07:54:59 UTC
|
||||||
|
Server = https://mirror.arvancloud.ir/archlinux/$repo/os/$arch
|
||||||
|
Server = https://america.mirror.pkgbuild.com/$repo/os/$arch
|
||||||
|
Server = https://sydney.mirror.pkgbuild.com/$repo/os/$arch
|
||||||
|
Server = https://archlinux.thaller.ws/$repo/os/$arch
|
||||||
|
Server = https://mirror.f4st.host/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirror.cyberbits.eu/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirror.moson.org/arch/$repo/os/$arch
|
||||||
|
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirror.theo546.fr/archlinux/$repo/os/$arch
|
||||||
|
Server = https://london.mirror.pkgbuild.com/$repo/os/$arch
|
||||||
|
Server = https://seoul.mirror.pkgbuild.com/$repo/os/$arch
|
||||||
|
Server = https://archlinux.mailtunnel.eu/$repo/os/$arch
|
||||||
|
Server = https://md.mirrors.hacktegic.com/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirror.sunred.org/archlinux/$repo/os/$arch
|
||||||
|
Server = https://dist-mirror.fem.tu-ilmenau.de/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirrors.niyawe.de/archlinux/$repo/os/$arch
|
||||||
|
Server = https://mirror.pseudoform.org/$repo/os/$arch
|
||||||
|
Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch
|
||||||
|
Server = https://at.arch.mirror.kescher.at/$repo/os/$arch
|
||||||
|
Server = https://de.arch.mirror.kescher.at/$repo/os/$arch
|
||||||
|
Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch
|
|
@ -1,3 +1,3 @@
|
||||||
timeout 15
|
timeout 15
|
||||||
default 01-archiso-x86_64-linux.conf
|
default 01-archiso-x86_64-linux.conf
|
||||||
beep on
|
beep off
|
||||||
|
|
|
@ -7,7 +7,7 @@ base
|
||||||
base-devel
|
base-devel
|
||||||
bind
|
bind
|
||||||
brltty
|
brltty
|
||||||
broadcom-wl
|
broadcom-wl-dkms
|
||||||
btrfs-progs
|
btrfs-progs
|
||||||
clonezilla
|
clonezilla
|
||||||
cloud-init
|
cloud-init
|
||||||
|
@ -29,7 +29,6 @@ ethtool
|
||||||
exfatprogs
|
exfatprogs
|
||||||
f2fs-tools
|
f2fs-tools
|
||||||
fatresize
|
fatresize
|
||||||
falkon
|
|
||||||
fsarchiver
|
fsarchiver
|
||||||
git
|
git
|
||||||
gnu-netcat
|
gnu-netcat
|
||||||
|
@ -80,7 +79,6 @@ nmap
|
||||||
ntfs-3g
|
ntfs-3g
|
||||||
nvme-cli
|
nvme-cli
|
||||||
open-iscsi
|
open-iscsi
|
||||||
open-vm-tools
|
|
||||||
openconnect
|
openconnect
|
||||||
openssh
|
openssh
|
||||||
openvpn
|
openvpn
|
||||||
|
@ -94,7 +92,6 @@ pv
|
||||||
python
|
python
|
||||||
python-psutil
|
python-psutil
|
||||||
python-systemd
|
python-systemd
|
||||||
qemu-guest-agent
|
|
||||||
refind
|
refind
|
||||||
#reflector
|
#reflector
|
||||||
reiserfsprogs
|
reiserfsprogs
|
||||||
|
@ -136,34 +133,55 @@ zsh
|
||||||
archlinux-keyring
|
archlinux-keyring
|
||||||
openssl-1.1
|
openssl-1.1
|
||||||
openssl
|
openssl
|
||||||
|
gvfs
|
||||||
|
gvfs-mtp
|
||||||
|
networkmanager
|
||||||
|
android-file-transfer
|
||||||
|
calamares
|
||||||
|
calamares-parch
|
||||||
|
boost
|
||||||
|
boost-libs
|
||||||
|
device-mapper
|
||||||
|
|
||||||
#Desktop
|
#Desktop
|
||||||
cutefish
|
|
||||||
sddm
|
sddm
|
||||||
cutefish-cursor-themes-git
|
cutefish-cursor-themes-git
|
||||||
sddm-theme-astronaut
|
sddm-theme-astronaut
|
||||||
cutefish-gtk-themes-git
|
cutefish-gtk-themes-git
|
||||||
#plasma-pa
|
plasma-pa
|
||||||
plasma-nm
|
plasma-nm
|
||||||
|
konsole
|
||||||
|
firefox
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#cutefish-desktop
|
||||||
|
cutefish-calculator
|
||||||
|
cutefish-core
|
||||||
|
cutefish-dock
|
||||||
|
cutefish-filemanager
|
||||||
|
cutefish-icons
|
||||||
|
#cutefish-kwin-plugins
|
||||||
|
cutefish-launcher
|
||||||
|
cutefish-qt-plugins
|
||||||
|
cutefish-screenlocker
|
||||||
|
cutefish-settings
|
||||||
|
cutefish-statusbar
|
||||||
|
cutefish-wallpapers
|
||||||
|
konsole
|
||||||
|
parch-cutefish-fix
|
||||||
|
|
||||||
|
|
||||||
#systemutils
|
#systemutils
|
||||||
btop
|
btop
|
||||||
xdg-user-dirs
|
xdg-user-dirs
|
||||||
packagekit-qt5
|
packagekit-qt5
|
||||||
neofetch-git
|
neofetch-git
|
||||||
keepassxc
|
|
||||||
geany
|
|
||||||
gwenview
|
|
||||||
okular
|
|
||||||
|
|
||||||
#parchlinuxstuff
|
#ParchLinux Core Packages
|
||||||
calamares
|
|
||||||
parchlinux-cala-config
|
|
||||||
os-prober
|
os-prober
|
||||||
paru
|
paru
|
||||||
|
parch-emoji-ios
|
||||||
|
vazirmatn-fonts
|
||||||
parch-branding
|
parch-branding
|
||||||
parch-pacman
|
parch-pacman
|
||||||
parch-os-wallpapers
|
|
||||||
parch-emoji-ios
|
|
||||||
parch-dorood
|
|
||||||
warpinator
|
|
||||||
|
|
|
@ -30,12 +30,12 @@ Architecture = auto
|
||||||
|
|
||||||
# Misc options
|
# Misc options
|
||||||
#UseSyslog
|
#UseSyslog
|
||||||
Color
|
#Color
|
||||||
#NoProgressBar
|
#NoProgressBar
|
||||||
CheckSpace
|
CheckSpace
|
||||||
#VerbosePkgLists
|
#VerbosePkgLists
|
||||||
ParallelDownloads = 5
|
#ParallelDownloads = 5
|
||||||
ILoveCandy
|
|
||||||
# By default, pacman accepts packages signed by keys that its local keyring
|
# By default, pacman accepts packages signed by keys that its local keyring
|
||||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||||
SigLevel = Required DatabaseOptional
|
SigLevel = Required DatabaseOptional
|
||||||
|
@ -69,19 +69,16 @@ LocalFileSigLevel = Optional
|
||||||
# repo name header and Include lines. You can add preferred servers immediately
|
# repo name header and Include lines. You can add preferred servers immediately
|
||||||
# after the header, and they will be used before the default mirrors.
|
# after the header, and they will be used before the default mirrors.
|
||||||
|
|
||||||
#[testing]
|
#[core-testing]
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[extra]
|
#[extra-testing]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
|
||||||
|
|
||||||
#[community-testing]
|
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[community]
|
[extra]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
# If you want to run 32 bit applications on your x86_64 system,
|
# If you want to run 32 bit applications on your x86_64 system,
|
||||||
|
@ -90,14 +87,16 @@ Include = /etc/pacman.d/mirrorlist
|
||||||
#[multilib-testing]
|
#[multilib-testing]
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[multilib]
|
#[multilib]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[ppr]
|
[ppr]
|
||||||
SigLevel = Optional TrustedOnly
|
SigLevel = Optional TrustedOnly
|
||||||
Server = https://raw.githubusercontent.com/parchlinux/ppr/main/x86_64/
|
Server = https://raw.githubusercontent.com/parchlinux/ppr/main/x86_64/
|
||||||
|
|
||||||
|
[pcp]
|
||||||
|
SigLevel = Optional TrustedOnly
|
||||||
|
Server = https://raw.githubusercontent.com/parchlinux/pcp/main/x86_64/
|
||||||
|
|
||||||
# An example of a custom package repository. See the pacman manpage for
|
# An example of a custom package repository. See the pacman manpage for
|
||||||
# tips on creating your own repositories.
|
# tips on creating your own repositories.
|
||||||
|
|
|
@ -9,8 +9,8 @@ iso_version="$(date +%Y.%m.%d)"
|
||||||
install_dir="arch"
|
install_dir="arch"
|
||||||
buildmodes=('iso')
|
buildmodes=('iso')
|
||||||
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
|
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
|
||||||
'uefi-ia32.grub.esp' 'uefi-x64.systemd-boot.esp'
|
'uefi-x64.systemd-boot.esp'
|
||||||
'uefi-ia32.grub.eltorito' 'uefi-x64.systemd-boot.eltorito')
|
'uefi-x64.systemd-boot.eltorito')
|
||||||
arch="x86_64"
|
arch="x86_64"
|
||||||
pacman_conf="pacman.conf"
|
pacman_conf="pacman.conf"
|
||||||
airootfs_image_type="squashfs"
|
airootfs_image_type="squashfs"
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 181 KiB |
|
@ -1,36 +0,0 @@
|
||||||
import logging
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
from datetime import datetime
|
|
||||||
from pathlib import Path
|
|
||||||
from github import Github
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
|
|
||||||
|
|
||||||
api_key = os.getenv("api_key", None)
|
|
||||||
current_date = datetime.today().strftime("%Y-%m-%d")
|
|
||||||
|
|
||||||
path = list(Path().cwd().glob("out/*.iso"))[0].as_posix()
|
|
||||||
|
|
||||||
repo_name = os.getenv("name", None)
|
|
||||||
release_name = os.getenv("release_name", None)
|
|
||||||
|
|
||||||
logging.info("Starting at %s", current_date)
|
|
||||||
|
|
||||||
if not (repo_name and api_key and release_name):
|
|
||||||
logging.error(
|
|
||||||
"'repo_name'/'api_key'/'release_name' not found in your envs."
|
|
||||||
"please add this and run again"
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
gh = Github(api_key)
|
|
||||||
repo = gh.get_repo(f"parchlinux/{repo_name}")
|
|
||||||
|
|
||||||
release = repo.get_release(release_name)
|
|
||||||
|
|
||||||
logging.info("statrting Upload ISO to release")
|
|
||||||
|
|
||||||
release.upload_asset(path=path)
|
|
||||||
logging.info("ISO upload is done")
|
|
65
tools/upload_asset.py
Normal file
65
tools/upload_asset.py
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
import hashlib
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from datetime import datetime
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from github import Github
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
|
||||||
|
|
||||||
|
api_key = os.getenv("API_KEY", None)
|
||||||
|
current_date = datetime.today().strftime("%Y-%m-%d")
|
||||||
|
|
||||||
|
|
||||||
|
def _compute_sha256(file_name):
|
||||||
|
hash_sha256 = hashlib.sha256()
|
||||||
|
with open(file_name, "rb") as f:
|
||||||
|
for chunk in iter(lambda: f.read(4096), b""):
|
||||||
|
hash_sha256.update(chunk)
|
||||||
|
return hash_sha256.hexdigest()
|
||||||
|
|
||||||
|
|
||||||
|
_path = list(Path().cwd().glob("out/*.iso"))[0]
|
||||||
|
path = _path.as_posix()
|
||||||
|
|
||||||
|
file_name = _path.name
|
||||||
|
|
||||||
|
hash = _compute_sha256(path)
|
||||||
|
|
||||||
|
repo_name = os.getenv("REPO_NAME", None)
|
||||||
|
release_name = os.getenv("RELEASE_NAME", None)
|
||||||
|
|
||||||
|
logging.info("Starting at %s", current_date)
|
||||||
|
|
||||||
|
if not (repo_name and api_key and release_name):
|
||||||
|
logging.error(
|
||||||
|
"'REPO_NAME'/'API_KEY'/'RELEASE_NAME' not found in your environment vars."
|
||||||
|
"please add this and run again."
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
gh = Github(api_key)
|
||||||
|
print(repo_name, api_key)
|
||||||
|
repo = gh.get_repo(repo_name)
|
||||||
|
|
||||||
|
release = repo.get_release(release_name)
|
||||||
|
|
||||||
|
logging.info("Statrting upload ISO to release")
|
||||||
|
|
||||||
|
release.upload_asset(path=path)
|
||||||
|
logging.info("ISO uploaded.")
|
||||||
|
|
||||||
|
# update release
|
||||||
|
msg = (
|
||||||
|
release.body
|
||||||
|
+ f"""
|
||||||
|
| name | sha256 |
|
||||||
|
| :---: | :---: |
|
||||||
|
| {file_name} | {hash} |"""
|
||||||
|
)
|
||||||
|
logging.info("Starting update release msg with: \n %s" % msg)
|
||||||
|
release.update_release(name=release.tag_name, message=msg)
|
||||||
|
logging.info("Release update is done.")
|
Loading…
Add table
Reference in a new issue