diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index afd821d..680e1da 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: MAINTAINER_EMAIL: ${{ vars.MAINTAINER_EMAIL }} DEBIAN_CODENAME: ${{ vars.DEBIAN_CODENAME }} run: | - echo "${{ secrets.GPG_KEY }}"|base64 -d|gpg --import + echo "${{ secrets.GPG_KEY }}" | base64 -d | gpg --import ./build.sh - name: Upload Debian package files uses: actions/upload-artifact@v3 @@ -30,6 +30,8 @@ jobs: runs-on: docker container: image: docker.io/brenard/debian-python-deb:latest + needs: + - build steps: - name: Download Debian package files uses: actions/download-artifact@v3 @@ -42,15 +44,15 @@ jobs: run: | mkdir release mv *.deb release/ - mv check-forgejo-upgrade-*/check_forgejo_upgrade release/ + mv check-*/check_* release/ { echo 'release_note<> "$GITHUB_OUTPUT" - name: Publish release on Forgejo - uses: actions/forgejo-release@v1 + uses: actions/forgejo-release@v2 with: direction: upload url: https://gitea.zionetrix.net @@ -62,6 +64,8 @@ jobs: runs-on: docker container: image: docker.io/brenard/aptly-publish:latest + needs: + - build steps: - name: "Download Debian package files" uses: actions/download-artifact@v3 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7f25e52..71cde3b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -67,4 +67,8 @@ repos: hooks: - id: check-executables-have-shebangs stages: [manual] + - repo: https://github.com/shellcheck-py/shellcheck-py + rev: v0.10.0.1 + hooks: + - id: shellcheck minimum_pre_commit_version: 3.2.0 diff --git a/build.sh b/build.sh index 20e930e..33b594a 100755 --- a/build.sh +++ b/build.sh @@ -1,10 +1,13 @@ #!/bin/bash QUIET_ARG="" -[ "$1" == "--quiet" ] && QUIET_ARG="--quiet" +[[ "$1" == "--quiet" ]] && QUIET_ARG="--quiet" # Enter source directory -cd $( dirname $0 ) +cd "$( dirname "$0" )" || exit + +CHECK_FILE="$( find "." -name 'check_*' ! -name '*~' -type f -executable | head -n 1 )" +PACKAGE_NAME="$( basename "$CHECK_FILE" | tr '_' '-' )" echo "Clean previous build..." rm -fr dist @@ -13,17 +16,17 @@ echo "Detect version using git describe..." VERSION="$( git describe --tags|sed 's/^[^0-9]*//' )" echo "Create building environemt..." -BDIR=dist/check-forgejo-upgrade-$VERSION -mkdir -p $BDIR -[ -z "$QUIET_ARG" ] && RSYNC_ARG="-v" || RSYNC_ARG="" -rsync -a $RSYNC_ARG debian/ $BDIR/debian/ -cp check_forgejo_upgrade $BDIR/ +BDIR="dist/$PACKAGE_NAME-$VERSION" +mkdir -p "$BDIR" +RSYNC_ARG="" +[[ -z "$QUIET_ARG" ]] && RSYNC_ARG="-v" +rsync -a "$RSYNC_ARG" debian/ "$BDIR/debian/" +cp "$CHECK_FILE" "$BDIR/" echo "Set VERSION=$VERSION in gitdch using sed..." -sed -i "s/^VERSION *=.*$/VERSION = '$VERSION'/" $BDIR/check_forgejo_upgrade +sed -i "s/^VERSION *=.*$/VERSION = '$VERSION'/" "$BDIR/$( basename "$CHECK_FILE" )" -if [ -z "$DEBIAN_CODENAME" ] -then +if [[ -z "$DEBIAN_CODENAME" ]]; then echo "Retrieve debian codename using lsb_release..." DEBIAN_CODENAME=$( lsb_release -c -s ) else @@ -32,31 +35,29 @@ fi echo "Generate debian changelog using gitdch..." GITDCH_ARGS=('--verbose') -[ -n "$QUIET_ARG" ] && GITDCH_ARGS=('--warning') -if [ -n "$MAINTAINER_NAME" ] -then +[[ -n "$QUIET_ARG" ]] && GITDCH_ARGS=('--warning') +if [[ -n "$MAINTAINER_NAME" ]]; then echo "Use maintainer name from environment ($MAINTAINER_NAME)" GITDCH_ARGS+=("--maintainer-name" "${MAINTAINER_NAME}") fi -if [ -n "$MAINTAINER_EMAIL" ] -then +if [[ -n "$MAINTAINER_EMAIL" ]]; then echo "Use maintainer email from environment ($MAINTAINER_EMAIL)" GITDCH_ARGS+=("--maintainer-email" "$MAINTAINER_EMAIL") fi gitdch \ - --package-name check-forgejo-upgrade \ + --package-name "$PACKAGE_NAME" \ --version "${VERSION}" \ - --code-name $DEBIAN_CODENAME \ - --output $BDIR/debian/changelog \ + --code-name "$DEBIAN_CODENAME" \ + --output "$BDIR"/debian/changelog \ --release-notes dist/release_notes.md \ "${GITDCH_ARGS[@]}" -if [ -n "$MAINTAINER_NAME" -a -n "$MAINTAINER_EMAIL" ] -then +if [[ -n "$MAINTAINER_NAME" ]] && [[ -n "$MAINTAINER_EMAIL" ]]; then echo "Set Maintainer field in debian control file ($MAINTAINER_NAME <$MAINTAINER_EMAIL>)..." - sed -i "s/^Maintainer: .*$/Maintainer: $MAINTAINER_NAME <$MAINTAINER_EMAIL>/" $BDIR/debian/control + sed -i "s/^Maintainer: .*$/Maintainer: $MAINTAINER_NAME <$MAINTAINER_EMAIL>/" \ + "$BDIR"/debian/control fi echo "Build debian package..." -cd $BDIR +cd "$BDIR" || exit dpkg-buildpackage