diff --git a/.gitea/workflows/publish.yaml b/.gitea/workflows/publish.yaml deleted file mode 100644 index 6cb7984..0000000 --- a/.gitea/workflows/publish.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: Build and publish Image -run-name: ${{ gitea.actor }} is building py-eagle-mqtt image -on: - push: - branches: - - '*' # matches every branch that doesn't contain a '/' - - '*/*' # matches every branch containing a single '/' - - '**' # matches every branch - - '!master' # excludes master - -jobs: - build-and-push: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4.1.1 - - - name: Login to Harbor - run: docker login -u ${{ secrets.HARBOR_USERNAME }} -p ${{ secrets.HARBOR_PASSWORD }} harbor.evanshome.io - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: ./Docker/ - push: true - tags: harbor.evanshome.io/library/py-eagle-mqtt:dev \ No newline at end of file diff --git a/.gitea/workflows/semantic-release.yaml b/.gitea/workflows/semantic-release.yaml index 1e9d0ed..cd50bb2 100644 --- a/.gitea/workflows/semantic-release.yaml +++ b/.gitea/workflows/semantic-release.yaml @@ -1,63 +1,59 @@ -name: Semantic Release and Changelog -run-name: ${{ gitea.actor }} is running Semantic Release +name: ci + on: + schedule: + - cron: "0 10 * * *" push: branches: - - 'master' + - "**" + tags: + - "v*.*.*" + pull_request: + branches: + - "main" jobs: - Patch: - name: Patch + docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.1 - with: - fetch-depth: '0' - - name: Minor version for each merge - id: taggerDryRun - uses: anothrNick/github-tag-action@1.67.0 - env: - GITHUB_TOKEN: ${{ secrets.REPO_PUSH_TOKEN }} - WITH_V: true - DRY_RUN: true + - name: Checkout + uses: actions/checkout@v4 + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + harbor.evanshome.io/library/py-eagle-mqtt + # generate Docker tags based on the following events/attributes + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Harbor + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: harbor.evanshome.io + username: ${{ secrets.HARBOR_USERNAME }} + password: ${{ secrets.HARBOR_PASSWORD }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: ./Docker/ + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - - name: echo new tag - run: | - echo "The next tag version will be: ${{ steps.taggerDryRun.outputs.new_tag }}" - - name: echo tag - run: | - echo "The current tag is: ${{ steps.taggerDryRun.outputs.tag }}" - - name: echo part - run: | - echo "The version increment was: ${{ steps.taggerDryRun.outputs.part }}" - - Build-and-Publish: - name: Build and Publish - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4.1.1 - - name: Login to Harbor - uses: docker/login-action@v2.2.0 - with: - registry: harbor.evanshome.io - username: "robot$registry-bot" - password: ${{ secrets.HARBOR_PASSWORD }} - - name: Build Docker image - run: docker build -t harbor.evanshome.io/library/py-eagle-mqtt:latest ./Docker/ - - name: Minor version for each merge - id: taggerFinal - uses: anothrNick/github-tag-action@1.67.0 - env: - GITHUB_TOKEN: ${{ secrets.REPO_PUSH_TOKEN }} - WITH_V: true - GIT_API_TAGGING: false - - name: tag with name - run: docker tag harbor.evanshome.io/library/py-eagle-mqtt:latest harbor.evanshome.io/library/py-eagle-mqtt:${{ steps.taggerFinal.outputs.new_tag }} - - name: Push Docker image to Harbor - run: docker push --all-tags harbor.evanshome.io/library/py-eagle-mqtt \ No newline at end of file diff --git a/.gitea/workflows/tag-release.yaml b/.gitea/workflows/tag-release.yaml new file mode 100644 index 0000000..09854b9 --- /dev/null +++ b/.gitea/workflows/tag-release.yaml @@ -0,0 +1,25 @@ +name: Bump version +on: + pull_request: + types: + - closed + branches: + - master + +jobs: + create_release_tag: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4.1.1 + with: + ref: ${{ github.event.pull_request.merge_commit_sha }} + fetch-depth: '0' + + - name: Create Release Tag + id: taggerFinal + uses: anothrNick/github-tag-action@1.67.0 + with: + GITHUB_TOKEN: ${{ secrets.REPO_PUSH_TOKEN }} + WITH_V: true + GIT_API_TAGGING: false diff --git a/Docker/requirements.txt b/Docker/requirements.txt index d4b3685..a8e0ea1 100644 --- a/Docker/requirements.txt +++ b/Docker/requirements.txt @@ -1,3 +1,3 @@ -paho-mqtt==1.6.1 +paho-mqtt==2.0.0 bottle==0.12.25 defusedxml==0.7.1 diff --git a/Docker/src/bin/dbg-msgHub.py b/Docker/src/bin/dbg-msgHub.py index 95e6246..737b630 100755 --- a/Docker/src/bin/dbg-msgHub.py +++ b/Docker/src/bin/dbg-msgHub.py @@ -26,7 +26,7 @@ class Client ( mqtt.Client ): self.on_connect = Client.on_connect self.on_message = Client.on_message - def on_connect( self, userData, flags, rc ): + def on_connect( self, userdata, flags, reason_code, properties ): self.subscribe( '#' ) def on_message( self, userData, msg ): @@ -62,4 +62,4 @@ client.loop_start() while True: pass -client.loop_stop( force=True ) +client.loop_stop() diff --git a/Docker/src/python/tHome/broker/connect.py b/Docker/src/python/tHome/broker/connect.py index 0e166f2..47c8274 100644 --- a/Docker/src/python/tHome/broker/connect.py +++ b/Docker/src/python/tHome/broker/connect.py @@ -7,11 +7,11 @@ from . import config import paho.mqtt.client as mqtt #=========================================================================== -class Client( mqtt.Client ): +class Client( mqtt.Client ): """Logging client """ def __init__( self, log=None ): - mqtt.Client.__init__( self ) + mqtt.Client.__init__( self, mqtt.CallbackAPIVersion.VERSION2 ) self._logger = log # Restore callbacks overwritten by stupid mqtt library self.on_log = Client.on_log