diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ffe89c..04cd15e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,7 +19,7 @@ jobs: sudo docker image prune --all --force sudo rm -rf /home/linuxbrew sudo apt-get remove -y --purge fonts-noto-color-emoji subversion \ - sshpass g++ gcc gnupg2 imagemagick jq libmagic-dev ssh \ + sshpass g++ gcc gnupg2 imagemagick jq libmagic-dev \ libmagickcore-dev libmagickwand-dev libssl-dev \ mercurial openssh-client p7zip-full ftp bison sudo apt-get autoremove -y diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 00658c8..9ea635b 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -9,6 +9,9 @@ jobs: - name: "Checkout" uses: actions/checkout@v3 - - name: "Lint SPEC files" + - name: "Lint" run: | - docker run -v "$PWD":/repo fedora:38 /bin/bash -c "/repo/lint.sh" \ No newline at end of file + docker run \ + -v "$PWD":/repo \ + ghcr.io/t2linux/fedora-dev:latest \ + /repo/lint.sh diff --git a/build-packages.sh b/build-packages.sh index d17ca16..cf23815 100755 --- a/build-packages.sh +++ b/build-packages.sh @@ -4,15 +4,15 @@ source /repo/util.sh if [[ -z "$1" ]]; then packages="" echo "Available packages: t2linux-config, t2linux-repo, t2linux-config, or kernel" - read -p "What package(s) do you want to build: " -a packages + read -r -p "What package(s) do you want to build: " -a packages else packages=( "$@" ) fi -for current_package in ${packages[@]}; do +for current_package in "${packages[@]}"; do if [ "$current_package" == "kernel" ]; then /repo/kernel/kernel.sh fi - cd /repo/$current_package - build_package $current_package.spec + cd /repo/"$current_package" || echo "ERROR: Package $current_package not found" + build_package "$current_package".spec done diff --git a/generate-dnf-repo.sh b/generate-dnf-repo.sh index 2381596..16f5ba7 100755 --- a/generate-dnf-repo.sh +++ b/generate-dnf-repo.sh @@ -1,7 +1,7 @@ #!/usr/bin/bash -cd /repo -mkdir ./dnf-repo && cd ./dnf-repo +cd /repo || exit 1 +mkdir ./dnf-repo && cd ./dnf-repo || exit 2 cp /repo/_output/*.rpm . -rm *.src.rpm +rm ./*.src.rpm createrepo . diff --git a/lint.sh b/lint.sh index 90a3ef1..407a44a 100755 --- a/lint.sh +++ b/lint.sh @@ -2,9 +2,8 @@ set -e -dnf install -y rpmlint +for i in /repo/*/*.spec; do + rpmlint "$i" +done -for i in /repo/*/*.spec -do - rpmlint $i -done \ No newline at end of file +shellcheck /repo/**.sh diff --git a/sign-packages.sh b/sign-packages.sh index 7f3eb83..45586b4 100755 --- a/sign-packages.sh +++ b/sign-packages.sh @@ -1,5 +1,5 @@ #!/usr/bin/bash source /repo/util.sh -cd /repo/_output -sign_packages $RPM_SIGNING_PRIVATE_KEY_B64 "T2Linux Fedora" +cd /repo/_output || exit 2 +sign_packages "$RPM_SIGNING_PRIVATE_KEY_B64" "T2Linux Fedora" diff --git a/util.sh b/util.sh index 217e82a..b7b7926 100755 --- a/util.sh +++ b/util.sh @@ -1,21 +1,22 @@ #!/usr/bin/bash build_package() { - spectool -g $1 - mock --buildsrpm --spec $1 --sources . --resultdir /repo/_output + spectool -g "$1" + mkdir -p /repo/_output + mock --buildsrpm --spec "$1" --sources . --resultdir /repo/_output mock --rebuild /repo/_output/*.src.rpm --resultdir /repo/_output } download_koji_sources() { # Takes full koji build name as input - koji download-build --arch=src $1 - rpmdev-extract $1.src.rpm - mv -n $1.src/* . - rm -r $1.src $1.src.rpm + koji download-build --arch=src "$1" + rpmdev-extract "$1".src.rpm + mv -n "$1".src/* . + rm -r "$1".src "$1".src.rpm } sign_packages() { - echo $1 | base64 -d | gpg --import + echo "$1" | base64 -d | gpg --import echo -e "%_signature gpg\n%_gpg_name $2" > ~/.rpmmacros - rpm --addsign *.rpm + rpm --addsign ./*.rpm }