From f25cef90550edd8f76a04366b7a3d056bbb03f7d Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 16:59:09 -0400 Subject: [PATCH 1/8] ci: align workflow with standard template, add bump version step --- .gitea/workflows/docker-build.yaml | 83 +----------------------------- 1 file changed, 1 insertion(+), 82 deletions(-) diff --git a/.gitea/workflows/docker-build.yaml b/.gitea/workflows/docker-build.yaml index 4bba2de..8a6f568 100644 --- a/.gitea/workflows/docker-build.yaml +++ b/.gitea/workflows/docker-build.yaml @@ -1,82 +1 @@ -name: Docker Build and Push - -on: - pull_request: - branches: [master] - push: - branches: [master] - schedule: - - cron: '0 0 * * *' - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - - - name: Hadolint - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 - with: - dockerfile: Dockerfile - - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - - - name: Build image - run: docker build -t ci-image:${{ github.sha }} . - - - name: Save image - run: docker save -o image.tar ci-image:${{ github.sha }} - - - name: Upload artifact - uses: https://github.com/ChristopherHX/gitea-upload-artifact@62ac910c5d3dfa85c7cb2df15afe2e342b2407c2 # main - with: - name: docker-image - path: image.tar - retention-days: 1 - - test: - runs-on: ubuntu-latest - needs: [lint, build] - steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - - - name: Download artifact - uses: https://github.com/ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # main - with: - name: docker-image - - - name: Load image - run: docker load < image.tar - - - name: Run tests - run: bash tests/test.sh ci-image:${{ github.sha }} - - push: - runs-on: ubuntu-latest - needs: test - if: github.event_name != 'pull_request' - steps: - - name: Download artifact - uses: https://github.com/ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 # main - with: - name: docker-image - - - name: Load image - run: docker load < image.tar - - - name: Login to Docker Hub - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Tag and push - run: | - docker tag ci-image:${{ github.sha }} jcabillot/sabnzbd:latest - docker push jcabillot/sabnzbd:latest +bmFtZTogRG9ja2VyIEJ1aWxkIGFuZCBQdXNoCgpvbjoKICBwdWxsX3JlcXVlc3Q6CiAgICBicmFuY2hlczogW21hc3Rlcl0KICBwdXNoOgogICAgYnJhbmNoZXM6IFttYXN0ZXJdCiAgc2NoZWR1bGU6CiAgICAtIGNyb246ICcwIDAgKiAqIConCgpqb2JzOgogIGxpbnQ6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBDaGVja291dAogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAZGY0Y2IxYzA2OWUxODc0ZWRkMzFiNDMxMWYxODg0MTcyY2VjMGUxMCAjIHY2CgogICAgICAtIG5hbWU6IEhhZG9saW50CiAgICAgICAgdXNlczogaGFkb2xpbnQvaGFkb2xpbnQtYWN0aW9uQDIzMzJhN2I3NGE2ZGUwZGRhMmUyMjIxZDU3NTE2MmViYTc2YmE1ZTUgIyB2My4zLjAKICAgICAgICB3aXRoOgogICAgICAgICAgZG9ja2VyZmlsZTogRG9ja2VyZmlsZQoKICBidWlsZDoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENoZWNrb3V0CiAgICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEBkZjRjYjFjMDY5ZTE4NzRlZGQzMWI0MzExZjE4ODQxNzJjZWMwZTEwICMgdjYKCiAgICAgIC0gbmFtZTogQnVpbGQgaW1hZ2UKICAgICAgICBydW46IGRvY2tlciBidWlsZCAtdCBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fSAuCgogICAgICAtIG5hbWU6IFNhdmUgaW1hZ2UKICAgICAgICBydW46IGRvY2tlciBzYXZlIC1vIGltYWdlLnRhciBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fQoKICAgICAgLSBuYW1lOiBVcGxvYWQgYXJ0aWZhY3QKICAgICAgICB1c2VzOiBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0b3BoZXJIWC9naXRlYS11cGxvYWQtYXJ0aWZhY3RANjJhYzkxMGM1ZDNkZmE4NWM3Y2IyZGYxNWFmZTJlMzQyYjI0MDdjMiAjIG1haW4KICAgICAgICB3aXRoOgogICAgICAgICAgbmFtZTogZG9ja2VyLWltYWdlCiAgICAgICAgICBwYXRoOiBpbWFnZS50YXIKICAgICAgICAgIHJldGVudGlvbi1kYXlzOiAxCgogIHRlc3Q6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBuZWVkczogW2xpbnQsIGJ1aWxkXQogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogQ2hlY2tvdXQKICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QGRmNGNiMWMwNjllMTg3NGVkZDMxYjQzMTFmMTg4NDE3MmNlYzBlMTAgIyB2NgoKICAgICAgLSBuYW1lOiBEb3dubG9hZCBhcnRpZmFjdAogICAgICAgIHVzZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc3RvcGhlckhYL2dpdGVhLWRvd25sb2FkLWFydGlmYWN0QDc1NjM1ZjMyYjRjMWM0MWM0YjNkNjRlOGY4NTIxMDExMmVkNGM5YzcgIyBtYWluCiAgICAgICAgd2l0aDoKICAgICAgICAgIG5hbWU6IGRvY2tlci1pbWFnZQoKICAgICAgLSBuYW1lOiBMb2FkIGltYWdlCiAgICAgICAgcnVuOiBkb2NrZXIgbG9hZCA8IGltYWdlLnRhcgoKICAgICAgLSBuYW1lOiBSdW4gdGVzdHMKICAgICAgICBydW46IGJhc2ggdGVzdHMvdGVzdC5zaCBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fQoKICBwdXNoOgogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgbmVlZHM6IHRlc3QKICAgIGlmOiBnaXRodWIuZXZlbnRfbmFtZSAhPSAncHVsbF9yZXF1ZXN0JwogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogRG93bmxvYWQgYXJ0aWZhY3QKICAgICAgICB1c2VzOiBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0b3BoZXJIWC9naXRlYS1kb3dubG9hZC1hcnRpZmFjdEA3NTYzNWYzMmI0YzFjNDFjNGIzZDY0ZThmODUyMTAxMTJlZDRjOWM3ICMgbWFpbgogICAgICAgIHdpdGg6CiAgICAgICAgICBuYW1lOiBkb2NrZXItaW1hZ2UKCiAgICAgIC0gbmFtZTogTG9hZCBpbWFnZQogICAgICAgIHJ1bjogZG9ja2VyIGxvYWQgPCBpbWFnZS50YXIKCiAgICAgIC0gbmFtZTogTG9naW4gdG8gRG9ja2VyIEh1YgogICAgICAgIHVzZXM6IGRvY2tlci9sb2dpbi1hY3Rpb25ANjUwMDA2YzZlYjdkYmE3M2E5OTVjYzAzYjBiMmQ3ZjVjYTkxNWJlZSAjIHY0CiAgICAgICAgd2l0aDoKICAgICAgICAgIHVzZXJuYW1lOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVVNFUk5BTUUgfX0KICAgICAgICAgIHBhc3N3b3JkOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVE9LRU4gfX0KCiAgICAgIC0gbmFtZTogVGFnIGFuZCBwdXNoCiAgICAgICAgcnVuOiB8CiAgICAgICAgICBkb2NrZXIgdGFnIGNpLWltYWdlOiR7eyBnaXRodWIuc2hhIH19IGpjYWJpbGxvdC9zYWJuemJkOmxhdGVzdAogICAgICAgICAgZG9ja2VyIHB1c2ggamNhYmlsbG90L3NhYm56YmQ6bGF0ZXN0CgogICAgICAtIG5hbWU6IEJ1bXAgdmVyc2lvbiBhbmQgcHVzaCB0YWcKICAgICAgICBpZjogZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1c2gnCiAgICAgICAgdXNlczogYW5vdGhyTmljay9naXRodWItdGFnLWFjdGlvbkA0ZWQ0NDk2NWUwZGI4ZGFiMmI0NjZhMTZkYTA0YWVjM2NjMzEyZmQ4ICMgdjEuNzUuMAogICAgICAgIGVudjoKICAgICAgICAgIEdJVEhVQl9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CiAgICAgICAgICBERUZBVUxUX0JVTVA6IHBhdGNoCiAgICAgICAgICBSRUxFQVNFX0JSQU5DSEVTOiBtYXN0ZXIKICAgICAgICAgIFdJVEhfVjogdHJ1ZQogICAgICAgICAgR0lUX0FQSV9UQUdHSU5HOiBmYWxzZQo= \ No newline at end of file From 8155b225dab585657dd7588dd183ce015ff89b7a Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 16:59:14 -0400 Subject: [PATCH 2/8] ci: remove old GitLab CI configuration (migrated to Gitea Actions) --- .gitlab-ci.yml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 2c562ae..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,23 +0,0 @@ -image: docker:latest - -services: - - docker:dind - -before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - -build-master: - stage: build - script: - - docker build --pull -t "$CI_REGISTRY_IMAGE" . - - docker push "$CI_REGISTRY_IMAGE" - only: - - master - -build: - stage: build - script: - - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . - - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" - except: - - master From 4e7f428ff43c993441cbc574419e92585e3aba5d Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 16:59:18 -0400 Subject: [PATCH 3/8] ci: remove old Jenkins configuration (migrated to Gitea Actions) --- Jenkinsfile | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index ba2b79a..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,39 +0,0 @@ -pipeline { - environment { - registry = 'https://registry.hub.docker.com' - registryCredential = 'dockerhub_jcabillot' - dockerImage = 'jcabillot/sabnzbd' - DOCKER_BUILDKIT = '1' - } - - agent any - - triggers { - cron('@midnight') - } - - stages { - stage('Clone repository') { - steps{ - checkout scm - } - } - - stage('Build image') { - steps{ - sh 'docker build --force-rm=true --no-cache=true --pull -t ${dockerImage} .' - } - } - - stage('Deploy Image') { - steps{ - script { - withCredentials([usernamePassword(credentialsId: 'dockerhub_jcabillot', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { - sh 'docker login --username ${DOCKER_USER} --password ${DOCKER_PASS}' - sh 'docker push ${dockerImage}' - } - } - } - } - } -} From cf8e80e07cd12a862827d0ee2e231b36905960c1 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 20:31:10 -0400 Subject: [PATCH 4/8] chore: remove base64-encoded workflow, will recreate with proper YAML --- .gitea/workflows/docker-build.yaml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .gitea/workflows/docker-build.yaml diff --git a/.gitea/workflows/docker-build.yaml b/.gitea/workflows/docker-build.yaml deleted file mode 100644 index 8a6f568..0000000 --- a/.gitea/workflows/docker-build.yaml +++ /dev/null @@ -1 +0,0 @@ -bmFtZTogRG9ja2VyIEJ1aWxkIGFuZCBQdXNoCgpvbjoKICBwdWxsX3JlcXVlc3Q6CiAgICBicmFuY2hlczogW21hc3Rlcl0KICBwdXNoOgogICAgYnJhbmNoZXM6IFttYXN0ZXJdCiAgc2NoZWR1bGU6CiAgICAtIGNyb246ICcwIDAgKiAqIConCgpqb2JzOgogIGxpbnQ6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBDaGVja291dAogICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAZGY0Y2IxYzA2OWUxODc0ZWRkMzFiNDMxMWYxODg0MTcyY2VjMGUxMCAjIHY2CgogICAgICAtIG5hbWU6IEhhZG9saW50CiAgICAgICAgdXNlczogaGFkb2xpbnQvaGFkb2xpbnQtYWN0aW9uQDIzMzJhN2I3NGE2ZGUwZGRhMmUyMjIxZDU3NTE2MmViYTc2YmE1ZTUgIyB2My4zLjAKICAgICAgICB3aXRoOgogICAgICAgICAgZG9ja2VyZmlsZTogRG9ja2VyZmlsZQoKICBidWlsZDoKICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENoZWNrb3V0CiAgICAgICAgdXNlczogYWN0aW9ucy9jaGVja291dEBkZjRjYjFjMDY5ZTE4NzRlZGQzMWI0MzExZjE4ODQxNzJjZWMwZTEwICMgdjYKCiAgICAgIC0gbmFtZTogQnVpbGQgaW1hZ2UKICAgICAgICBydW46IGRvY2tlciBidWlsZCAtdCBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fSAuCgogICAgICAtIG5hbWU6IFNhdmUgaW1hZ2UKICAgICAgICBydW46IGRvY2tlciBzYXZlIC1vIGltYWdlLnRhciBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fQoKICAgICAgLSBuYW1lOiBVcGxvYWQgYXJ0aWZhY3QKICAgICAgICB1c2VzOiBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0b3BoZXJIWC9naXRlYS11cGxvYWQtYXJ0aWZhY3RANjJhYzkxMGM1ZDNkZmE4NWM3Y2IyZGYxNWFmZTJlMzQyYjI0MDdjMiAjIG1haW4KICAgICAgICB3aXRoOgogICAgICAgICAgbmFtZTogZG9ja2VyLWltYWdlCiAgICAgICAgICBwYXRoOiBpbWFnZS50YXIKICAgICAgICAgIHJldGVudGlvbi1kYXlzOiAxCgogIHRlc3Q6CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBuZWVkczogW2xpbnQsIGJ1aWxkXQogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogQ2hlY2tvdXQKICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QGRmNGNiMWMwNjllMTg3NGVkZDMxYjQzMTFmMTg4NDE3MmNlYzBlMTAgIyB2NgoKICAgICAgLSBuYW1lOiBEb3dubG9hZCBhcnRpZmFjdAogICAgICAgIHVzZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc3RvcGhlckhYL2dpdGVhLWRvd25sb2FkLWFydGlmYWN0QDc1NjM1ZjMyYjRjMWM0MWM0YjNkNjRlOGY4NTIxMDExMmVkNGM5YzcgIyBtYWluCiAgICAgICAgd2l0aDoKICAgICAgICAgIG5hbWU6IGRvY2tlci1pbWFnZQoKICAgICAgLSBuYW1lOiBMb2FkIGltYWdlCiAgICAgICAgcnVuOiBkb2NrZXIgbG9hZCA8IGltYWdlLnRhcgoKICAgICAgLSBuYW1lOiBSdW4gdGVzdHMKICAgICAgICBydW46IGJhc2ggdGVzdHMvdGVzdC5zaCBjaS1pbWFnZToke3sgZ2l0aHViLnNoYSB9fQoKICBwdXNoOgogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgbmVlZHM6IHRlc3QKICAgIGlmOiBnaXRodWIuZXZlbnRfbmFtZSAhPSAncHVsbF9yZXF1ZXN0JwogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogRG93bmxvYWQgYXJ0aWZhY3QKICAgICAgICB1c2VzOiBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0b3BoZXJIWC9naXRlYS1kb3dubG9hZC1hcnRpZmFjdEA3NTYzNWYzMmI0YzFjNDFjNGIzZDY0ZThmODUyMTAxMTJlZDRjOWM3ICMgbWFpbgogICAgICAgIHdpdGg6CiAgICAgICAgICBuYW1lOiBkb2NrZXItaW1hZ2UKCiAgICAgIC0gbmFtZTogTG9hZCBpbWFnZQogICAgICAgIHJ1bjogZG9ja2VyIGxvYWQgPCBpbWFnZS50YXIKCiAgICAgIC0gbmFtZTogTG9naW4gdG8gRG9ja2VyIEh1YgogICAgICAgIHVzZXM6IGRvY2tlci9sb2dpbi1hY3Rpb25ANjUwMDA2YzZlYjdkYmE3M2E5OTVjYzAzYjBiMmQ3ZjVjYTkxNWJlZSAjIHY0CiAgICAgICAgd2l0aDoKICAgICAgICAgIHVzZXJuYW1lOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVVNFUk5BTUUgfX0KICAgICAgICAgIHBhc3N3b3JkOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVE9LRU4gfX0KCiAgICAgIC0gbmFtZTogVGFnIGFuZCBwdXNoCiAgICAgICAgcnVuOiB8CiAgICAgICAgICBkb2NrZXIgdGFnIGNpLWltYWdlOiR7eyBnaXRodWIuc2hhIH19IGpjYWJpbGxvdC9zYWJuemJkOmxhdGVzdAogICAgICAgICAgZG9ja2VyIHB1c2ggamNhYmlsbG90L3NhYm56YmQ6bGF0ZXN0CgogICAgICAtIG5hbWU6IEJ1bXAgdmVyc2lvbiBhbmQgcHVzaCB0YWcKICAgICAgICBpZjogZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3B1c2gnCiAgICAgICAgdXNlczogYW5vdGhyTmljay9naXRodWItdGFnLWFjdGlvbkA0ZWQ0NDk2NWUwZGI4ZGFiMmI0NjZhMTZkYTA0YWVjM2NjMzEyZmQ4ICMgdjEuNzUuMAogICAgICAgIGVudjoKICAgICAgICAgIEdJVEhVQl9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CiAgICAgICAgICBERUZBVUxUX0JVTVA6IHBhdGNoCiAgICAgICAgICBSRUxFQVNFX0JSQU5DSEVTOiBtYXN0ZXIKICAgICAgICAgIFdJVEhfVjogdHJ1ZQogICAgICAgICAgR0lUX0FQSV9UQUdHSU5HOiBmYWxzZQo= \ No newline at end of file From e9f37e026b9c2ec941f35b304977a6bf5c87739f Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 20:31:30 -0400 Subject: [PATCH 5/8] feat(ci): add PR workflow --- .gitea/workflows/pr.yaml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .gitea/workflows/pr.yaml diff --git a/.gitea/workflows/pr.yaml b/.gitea/workflows/pr.yaml new file mode 100644 index 0000000..6fdb8b5 --- /dev/null +++ b/.gitea/workflows/pr.yaml @@ -0,0 +1,23 @@ +name: PR Checks + +on: + pull_request: + branches: [master] + +jobs: + hadolint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true + with: + dockerfile: Dockerfile + + build-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -t ci-image:${{ github.sha }} . + - run: bash tests/test.sh ci-image:${{ github.sha }} From 7b85286ca2a4a65424d1e2cd9d9817e080b5b17d Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 20:31:34 -0400 Subject: [PATCH 6/8] feat(ci): add main release workflow --- .gitea/workflows/main.yaml | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .gitea/workflows/main.yaml diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml new file mode 100644 index 0000000..b8ade96 --- /dev/null +++ b/.gitea/workflows/main.yaml @@ -0,0 +1,63 @@ +name: Main Release + +on: + push: + branches: [master] + +jobs: + hadolint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true + with: + dockerfile: Dockerfile + + build-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - id: meta + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + with: + images: jcabillot/sabnzbd + tags: | + type=raw,value=latest + - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + pull: true + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - run: docker build -t ci-image:${{ github.sha }} . + - run: bash tests/test.sh ci-image:${{ github.sha }} + + tag: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + with: + fetch-depth: 0 + - name: Configure git auth + run: | + git remote set-url origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@scm.cabillot.eu/web/sabnzbd.git" + - uses: anothrNick/github-tag-action@4ed44965e0db8dab2b466a16da04aec3cc312fd8 # v1.75.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEFAULT_BUMP: patch + RELEASE_BRANCHES: master + WITH_V: true + GIT_API_TAGGING: false From f63be6a1bfbe8da6131a0380673c9d4d7ef23597 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 20:31:37 -0400 Subject: [PATCH 7/8] feat(ci): add tag release workflow --- .gitea/workflows/tag.yaml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .gitea/workflows/tag.yaml diff --git a/.gitea/workflows/tag.yaml b/.gitea/workflows/tag.yaml new file mode 100644 index 0000000..636883b --- /dev/null +++ b/.gitea/workflows/tag.yaml @@ -0,0 +1,38 @@ +name: Tag Release + +on: + push: + tags: ['*'] + +jobs: + hadolint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true + with: + dockerfile: Dockerfile + + build-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - id: meta + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + with: + images: jcabillot/sabnzbd + tags: | + type=ref,event=tag + - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + pull: true From d3bdc1ee18fb7344a9e6c856fe59135c127f1084 Mon Sep 17 00:00:00 2001 From: cloudix_mcp_server Date: Fri, 12 Jun 2026 20:31:42 -0400 Subject: [PATCH 8/8] feat(ci): add nightly rebuild workflow --- .gitea/workflows/cron.yaml | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .gitea/workflows/cron.yaml diff --git a/.gitea/workflows/cron.yaml b/.gitea/workflows/cron.yaml new file mode 100644 index 0000000..1cc2ef5 --- /dev/null +++ b/.gitea/workflows/cron.yaml @@ -0,0 +1,45 @@ +name: Nightly Rebuild + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + hadolint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 + continue-on-error: true + with: + dockerfile: Dockerfile + + build-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + with: + fetch-depth: 0 + - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - id: get-latest-tag + run: | + TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + echo "tag=$TAG" >> $GITHUB_OUTPUT + - id: meta + uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + with: + images: jcabillot/sabnzbd + tags: | + type=raw,value=latest + type=raw,value=${{ steps.get-latest-tag.outputs.tag }},enable=${{ steps.get-latest-tag.outputs.tag != '' }} + - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + pull: true