diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml new file mode 100644 index 0000000..b2fb581 --- /dev/null +++ b/.forgejo/workflows/release.yaml @@ -0,0 +1,88 @@ +--- +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 + ./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 + check_esphome_devices + + 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 dist/*.deb release/ + mv check_esphome_devices release/ + cd release/ + md5sum * > md5sum.txt + sha512sum * > sha512sum.txt + { + 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: ${{ vars.apt_source_name }} diff --git a/.forgejo/workflows/tests.yaml b/.forgejo/workflows/tests.yaml new file mode 100644 index 0000000..363751b --- /dev/null +++ b/.forgejo/workflows/tests.yaml @@ -0,0 +1,21 @@ +--- +name: Run tests +on: [push] +jobs: + test-precommit: + 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 python dependencies + env: + DEBIAN_FRONTEND: noninteractive + run: | + apt-get -qq update + apt-get -qq -y install --no-install-recommends python3-requests + - name: Run pre-commit + run: pre-commit run --all-files diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index a8d17d2..0000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,63 +0,0 @@ -clone: - git: - image: woodpeckerci/plugin-git - tags: true - -pipeline: - tests: - image: brenard/python-pre-commit:latest - commands: - - DEBIAN_FRONTEND=noninteractive apt-get -qq update < /dev/null > /dev/null - - DEBIAN_FRONTEND=noninteractive apt-get -qq -y install --no-install-recommends python3-requests < /dev/null > /dev/null - - pre-commit run --all-files - - 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/* dist/check-esphome-devices-*/check_esphome_devices - - 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/check-esphome-devices-*/check_esphome_devices - - 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: check-esphome-devices