From 2a33b9098098a22bd212311629e09f06be66e95e Mon Sep 17 00:00:00 2001 From: Hobart2967 Date: Thu, 12 Feb 2026 20:02:36 +0100 Subject: [PATCH 1/4] feat(docker): :sparkles: Add docker image and CI --- .github/workflows/on-push.yml | 37 +++++++++++++++++++++++++++++++++++ .releaserc.js | 28 ++++++++++++++++++++++++++ Dockerfile | 19 ++++++++++++++++++ README.md | 6 ++++++ build.sh | 2 ++ release.sh | 2 ++ 6 files changed, 94 insertions(+) create mode 100644 .github/workflows/on-push.yml create mode 100644 .releaserc.js create mode 100644 Dockerfile create mode 100755 build.sh create mode 100755 release.sh diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml new file mode 100644 index 0000000..b8ffcfe --- /dev/null +++ b/.github/workflows/on-push.yml @@ -0,0 +1,37 @@ +name: Build & Release +on: push + +permissions: + contents: read + packages: read + +jobs: + on_push: + permissions: + contents: write + packages: write + name: Release ${{ matrix.mc_version }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 20.8.1 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} + password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} + - name: Publish package + run: | + npx \ + --package @semantic-release/commit-analyzer \ + --package @semantic-release/release-notes-generator \ + --package @semantic-release/github \ + --package @semantic-release/exec \ + --package @semantic-release/git \ + semantic-release + if: github.ref_name == 'main' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.releaserc.js b/.releaserc.js new file mode 100644 index 0000000..08a2091 --- /dev/null +++ b/.releaserc.js @@ -0,0 +1,28 @@ +module.exports = { + branches: ['main'], + plugins: [ + [ + '@semantic-release/commit-analyzer', + { + preset: 'angular', + releaseRules: [ + { type: 'docs', scope: 'README', release: 'patch' }, + { type: 'refactor', release: 'patch' }, + { type: 'style', release: 'patch' }, + ], + parserOpts: { + noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'], + }, + }, + ], + '@semantic-release/release-notes-generator', + '@semantic-release/github', + [ + '@semantic-release/exec', + { + prepareCmd: './build.sh ${nextRelease.version}', + publishCmd: './release.sh ${nextRelease.version}', + }, + ], + ], +}; \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e423183 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:latest + +# | 'latest' +RUN apk add --no-cache \ + make gcc libc-dev \ + && rm -rf /var/cache/apk/* + +RUN mkdir -p /app/ + +COPY Makefile /app/ +COPY mcrcon.1 /app/ +COPY mcrcon.c /app/ + +WORKDIR /app/ + +RUN make +RUN make install + +ENTRYPOINT [ "/app/mcrcon" ] \ No newline at end of file diff --git a/README.md b/README.md index 9961fab..40b92bc 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,12 @@ mcrcon is console based Minecraft [rcon](https://developer.valvesoftware.com/wik ### Installing: +##### via docker: + +```yaml +docker run -it Tiiffi/mcrcon:latest +``` + ##### via packet manager: See https://pkgs.org/download/mcrcon for available packages in various Linux distros (note that available packages might be outdated). diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..18189f7 --- /dev/null +++ b/build.sh @@ -0,0 +1,2 @@ +docker build . -t $DOCKER_REGISTRY_USERNAME/mcrcon:$1 +docker build . -t $DOCKER_REGISTRY_USERNAME/mcrcon:latest \ No newline at end of file diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..14e5876 --- /dev/null +++ b/release.sh @@ -0,0 +1,2 @@ +docker push mcrcon:$1 +docker push mcrcon:latest \ No newline at end of file From 74bbeb6037facf78b5dbc09fda8e605ab325e960 Mon Sep 17 00:00:00 2001 From: Hobart2967 Date: Thu, 12 Feb 2026 20:16:00 +0100 Subject: [PATCH 2/4] ci(ci): :green_heart: Fix node version --- .github/workflows/on-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index b8ffcfe..d11ed01 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -17,7 +17,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v3 with: - node-version: 20.8.1 + node-version: 24 - name: Login to Docker Hub uses: docker/login-action@v3 with: From 2b2aff4cc0c0febe18da39d4c46f5362c5ef7667 Mon Sep 17 00:00:00 2001 From: Hobart2967 Date: Thu, 12 Feb 2026 20:17:22 +0100 Subject: [PATCH 3/4] ci(ci): :green_heart: Fix missing env vars --- .github/workflows/on-push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index d11ed01..98b2780 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -35,3 +35,5 @@ jobs: if: github.ref_name == 'main' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCKER_REGISTRY_USERNAME: ${{ secrets.DOCKER_REGISTRY_USERNAME }} + DOCKER_REGISTRY_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} From 066b92229c6aefdbea04f3b9766ecfa22d01cb0b Mon Sep 17 00:00:00 2001 From: Hobart2967 Date: Thu, 12 Feb 2026 20:19:38 +0100 Subject: [PATCH 4/4] fix(docker): :green_heart: Fix missing environment variable usage. --- release.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release.sh b/release.sh index 14e5876..476458d 100755 --- a/release.sh +++ b/release.sh @@ -1,2 +1,2 @@ -docker push mcrcon:$1 -docker push mcrcon:latest \ No newline at end of file +docker push $DOCKER_REGISTRY_USERNAME/mcrcon:$1 +docker push $DOCKER_REGISTRY_USERNAME/mcrcon:latest \ No newline at end of file