From 5dbe278251d49c3bd4f3046762e4c78c58be0217 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Sun, 10 Mar 2024 18:30:18 +0100 Subject: [PATCH] Switch from Woodpecker CI to Forgejo Actions --- .forgejo/workflows/release.yaml | 83 +++++++++++++++++++++++++++++++++ .woodpecker.yml | 55 ---------------------- build.sh | 42 ++++++++++++++++- 3 files changed, 124 insertions(+), 56 deletions(-) create mode 100644 .forgejo/workflows/release.yaml delete mode 100644 .woodpecker.yml diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml new file mode 100644 index 0000000..e73024f --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,83 @@ +--- +name: Build and publish forgejo Debian package +on: [create] +jobs: + build: + runs-on: docker + container: + image: docker.io/brenard/debian-python-deb:latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Build Debian package + env: + MAINTAINER_NAME: ${{ vars.MAINTAINER_NAME }} + MAINTAINER_EMAIL: ${{ vars.MAINTAINER_EMAIL }} + DEBIAN_CODENAME: ${{ vars.DEBIAN_CODENAME }} + run: | + echo "${{ secrets.GPG_KEY }}"|base64 -d|gpg --import + ./build.sh + - name: Upload Debian package files + uses: actions/upload-artifact@v3 + with: + name: dist + path: | + dist/*.buildinfo + dist/*.changes + dist/*.deb + dist/*.dsc + dist/*.tar.gz + dist/release_notes.md + + publish-forgejo: + runs-on: docker + container: + image: docker.io/brenard/debian-python-deb:latest + steps: + - name: Download Debian package files + uses: actions/download-artifact@v3 + with: + name: dist + + - name: Create the release + id: create-release + shell: bash + run: | + mkdir release + mv *.deb release/ + { + echo 'release_note<> "$GITHUB_OUTPUT" + + - name: Publish release on Forgejo + uses: actions/forgejo-release@v1 + with: + direction: upload + url: https://gitea.zionetrix.net + token: ${{ secrets.forgejo_token }} + release-dir: release + release-notes: ${{ steps.create-release.outputs.release_note }} + + publish-aptly: + runs-on: docker + container: + image: docker.io/brenard/aptly-publish:latest + steps: + - name: "Download Debian package files" + uses: actions/download-artifact@v3 + with: + name: dist + + - name: "Publish Debian package on Aptly repository" + uses: https://gitea.zionetrix.net/bn8/aptly-publish@master + with: + api_url: ${{ vars.apt_api_url }} + api_username: ${{ vars.apt_api_username }} + api_password: ${{ secrets.apt_api_password }} + repo_name: ${{ vars.apt_repo_name }} + path: "./" + source_name: "forgejo" diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index 4100d8a..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,55 +0,0 @@ -clone: - git: - image: woodpeckerci/plugin-git - tags: true - -steps: - build: - image: brenard/debian-python-deb - when: - event: tag - commands: - - echo "$GPG_KEY"|base64 -d|gpg --import - - ./build.sh --quiet - secrets: [ maintainer_name, maintainer_email, gpg_key, debian_codename ] - - publish-dryrun: - group: publish - image: alpine - when: - event: tag - commands: - - ls dist/* - - publish-gitea: - group: publish - image: plugins/gitea-release - when: - event: tag - settings: - api_key: - from_secret: gitea_token - base_url: https://gitea.zionetrix.net - note: dist/release_notes.md - files: - - dist/*.deb - checksum: - - md5 - - sha512 - - publish-apt: - group: publish - image: brenard/aptly-publish - when: - event: tag - settings: - api_url: - from_secret: apt_api_url - api_username: - from_secret: apt_api_username - api_password: - from_secret: apt_api_password - repo_name: - from_secret: apt_repo_name - path: dist - source_name: forgejo diff --git a/build.sh b/build.sh index dc20159..2bc6708 100755 --- a/build.sh +++ b/build.sh @@ -1,11 +1,51 @@ #!/bin/bash +DEBUG=0 +INSTALL_DEPS=0 QUIET_ARG="" -[ "$1" == "--quiet" ] && QUIET_ARG="--quiet" + +function usage() { + [ -n "$@" ] && echo -e "$@\n" > /dev/stderr + echo "Usage: $0 [-x] [-I]" + echo " -I/--install-deps Install build dependencies" + echo " -q/--quiet Enable quiet mode" + echo " -x/--debug Enable debug mode" + [ -n "$@" ] && exit 1 +} + +idx=1 +while [ $idx -le $# ] +do + OPT=${!idx} + case $OPT in + -I|--install-deps) + INSTALL_DEPS=1 + ;; + -q|--quiet) + QUIET_ARG="--quiet" + ;; + -x|--debug) + set -x + DEBUG=1 + ;; + *) + usage "Unkown parameter '$OPT'" + esac + let idx=idx+1 +done # Enter source directory cd $( dirname $0 ) +# Install build dependencies +if [ $INSTALL_DEPS -eq 1 ] +then + echo "Install build dependencies..." + apt-get update + apt-get install --no-install-recommends --yes \ + $(grep Build-Depends debian/control|sed 's/Build-Depends: //'|sed 's/([^)]\+)//'|tr -d ',') +fi + echo "Clean previous build..." rm -fr dist