diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml new file mode 100644 index 0000000..361ccd6 --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,84 @@ +--- +name: Build and publish Debian & Python packages +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 & Python 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 + rm -fr deb_dist/mylib-* + - name: Upload Debian & Python package files + uses: actions/upload-artifact@v3 + with: + name: dist + path: | + dist + deb_dist + + publish-forgejo: + runs-on: docker + container: + image: docker.io/brenard/debian-python-deb:latest + steps: + - name: Download Debian & Python packages files + uses: actions/download-artifact@v3 + with: + name: dist + + - name: Create the release + id: create-release + shell: bash + run: | + mkdir release + mv dist/*.whl dist/*.tar.gz release/ + mv deb_dist/*.deb release/ + md5sum release/* > md5sum.txt + sha512sum release/* > sha512sum.txt + mv md5sum.txt sha512sum.txt 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: "deb_dist" + source_name: ${{ vars.apt_source_name }} diff --git a/.forgejo/workflows/tests.yaml b/.forgejo/workflows/tests.yaml new file mode 100644 index 0000000..e0294e1 --- /dev/null +++ b/.forgejo/workflows/tests.yaml @@ -0,0 +1,30 @@ +--- +name: Run tests +on: [push] +jobs: + tests: + runs-on: docker + container: + image: docker.io/brenard/python-pre-commit:latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install dependencies + env: + DEBIAN_FRONTEND: noninteractive + run: | + apt-get -qq update + apt-get -qq -y install --no-install-recommends \ + build-essential \ + python3 \ + python3-dev \ + libldap2-dev \ + libsasl2-dev \ + pkg-config \ + libsystemd-dev \ + libpq-dev \ + libmariadb-dev + - name: Run tests.sh + run: ./tests.sh diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index 29b1811..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,63 +0,0 @@ -clone: - git: - image: woodpeckerci/plugin-git - tags: true - -pipeline: - test: - image: brenard/mylib:dev-master - commands: - - ./tests.sh --no-venv - - build: - image: brenard/debian-python-deb - when: - event: tag - commands: - - echo "$GPG_KEY"|base64 -d|gpg --import - - ./build.sh --quiet - - rm -fr deb_dist/mylib-* - secrets: [maintainer_name, maintainer_email, gpg_key, debian_codename] - - publish-dryrun: - group: publish - image: alpine - when: - event: tag - commands: - - ls dist/* - - ls deb_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_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: deb_dist - source_name: mylib