From 36bc245af6528006b5e84e8c9df67133ad619709 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Fri, 15 Mar 2024 11:17:36 +0100 Subject: [PATCH] Switch from Woodpecker CI to Forgejo Actions --- .forgejo/workflows/release.yaml | 103 ++++++++++++++++++++++++++++++++ .woodpecker.yml | 60 ------------------- 2 files changed, 103 insertions(+), 60 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..03b45fd --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,103 @@ +--- +name: Build and publish 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 + mkdir dist + python3 -m pip wheel cx-Oracle -w dist + wheel2deb --map attrs=attr -x dist -o dist + cd dist/python3-cx-oracle_*_amd64 + echo -n 10 > debian/compat + sed -i "s/wheel2deb /${MAINTAINER_NAME} <${MAINTAINER_EMAIL}>/" \ + debian/changelog debian/control + sed -i "s/unstable/$DEBIAN_CODENAME/" debian/changelog + sed -i 's/^Depends: python3.*/Depends: python3/' debian/control + dpkg-buildpackage + cd ../../ + rm -fr dist/python3-cx-oracle_*_amd64 + curl --silent https://api.github.com/repos/oracle/python-cx_Oracle/releases | \ + jq --raw-output ".[] | select(.tag_name == \"$GITHUB_REF_NAME\") | .body" \ + > dist/release_notes.md + - 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/*.whl + dist/release_notes.md + + publish-forgejo: + 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 + with: + name: dist + + - name: Create the release + id: create-release + shell: bash + run: | + mkdir release + mv *.deb *.whl 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 + needs: build + 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: ${{ vars.apt_source_name }} diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index ee7e01b..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,60 +0,0 @@ -pipeline: - build: - image: brenard/debian-python-deb - when: - event: tag - commands: - - echo "$GPG_KEY"|base64 -d|gpg --import - - mkdir dist - - python3 -m pip wheel cx-Oracle -w dist --quiet - - wheel2deb --map attrs=attr -x dist -o dist - - cd dist/python3-cx-oracle_*_amd64 - - sed -i "s/wheel2deb /$GPG_NAME <$GPG_EMAIL>/" debian/changelog debian/control - - sed -i "s/unstable/$DEB_DIST/" debian/changelog - - dpkg-buildpackage - - cd ../../ - - rm -fr dist/python3-cx-oracle_*_amd64 - - curl --silent https://api.github.com/repos/oracle/python-cx_Oracle/releases |jq --raw-output ".[] | select(.tag_name == \"$CI_COMMIT_TAG\") | .body" > dist/release_notes.md - secrets: [ gpg_key, gpg_name, gpg_email, deb_dist ] - - publish-dryrun: - group: publish - image: debian - 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 - - dist/*.whl - 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: python3-cx-oracle