diff --git a/.github/workflows/example.yml b/.github/workflows/example.yml
index a1cb447..dba744a 100644
--- a/.github/workflows/example.yml
+++ b/.github/workflows/example.yml
@@ -1,34 +1,38 @@
name: Sample Testing
on: [push]
+env:
+ VER: 0.1.2
+
jobs:
my_job:
runs-on: stackit-docker
steps:
- - name: Checkout
- uses: actions/checkout@v6
-
- - name: Get commit hash
- if: ${{ always() }}
- run: echo "::set-output name=sha8::$(echo ${FORGEJO_SHA} | cut -c1-8)"
- id: slug
-
- name: First Chat Message
if: ${{ always() }}
- uses: https://stackit-solutions.git.onstackit.cloud/actions/notify@v0.1.2
+ uses: https://stackit-solutions.git.onstackit.cloud/actions/notify@v${{ env.VER }}
with:
+ title: "[START] sample test (${{ forgejo.run_number }})"
author: ${{ forgejo.actor }}
giturl: ${{ forgejo.server_url }}
- # status: ${{ job.status }}
+ iconslug: instacart
+ # status: ${{ job.status }} # optional
actionid: ${{ forgejo.run_number }}
webhook: "${{ secrets.WEBHOOK_URL }}"
# event_body: "" # optional
+ - name: Force failure
+ run: |
+ echo "This is a force failure"
+ exit 1
+
- name: Second Chat Message as ThreadResponse
if: ${{ always() }}
uses: https://stackit-solutions.git.onstackit.cloud/actions/notify@v0.1.2
with:
+ title: "[END] sample test (${{ forgejo.run_number }})"
+ iconslug: bun
author: ${{ forgejo.actor }}
giturl: ${{ forgejo.server_url }}
status: ${{ job.status }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..2890b3e
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,102 @@
+name: CI
+on:
+ push:
+ branches:
+ - '**'
+ pull_request:
+ branches:
+ - '**'
+
+# If a 403 error occurs, make sure to set content permission to write
+# see: https://github.com/go-semantic-release/action/issues/27
+permissions:
+ contents: write
+
+jobs:
+ lint:
+ runs-on: stackit-docker
+ steps:
+ - name: CI checkout
+ uses: actions/checkout@v6
+
+ - name: Setup GO
+ uses: actions/setup-go@v6
+ with:
+ go-version: 1.26
+
+ - name: GO Linting
+ uses: golangci/golangci-lint-action@v3
+
+# build:
+# runs-on: stackit-docker
+## strategy:
+## fail-fast: true
+## matrix:
+## node: [10, 12]
+# steps:
+# - uses: actions/checkout@v6
+#
+# - uses: actions/setup-node@v1
+# with:
+# node-version: ${{ matrix.node }}
+# - run: npm ci
+# - run: npm test
+ release:
+ runs-on: stackit-docker
+# needs: build
+ outputs:
+ tag: ${{ steps.create_release.outputs.tag }}
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v6
+
+# - name: Semantic Release
+# uses: go-semantic-release/action@v1
+# id: semrel
+# with:
+# github-token: ${{ env.FORGEJO_TOKEN }}
+# allow-initial-development-versions: true
+# # update-file: package.json
+# changelog-file: CHANGELOG.md
+# changelog-generator-opt: "emojis=true"
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Create Release
+ env:
+ FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
+ id: create_release
+ run: |
+ npx \
+ -p semantic-release \
+ -p @semantic-release/commit-analyzer \
+ -p @semantic-release/release-notes-generator \
+ -p @semantic-release/changelog \
+ -p @semantic-release/git \
+ semantic-release
+ echo "tag=$(git describe --tags --abbrev=0)" >> $FORGEJO_OUTPUT
+
+ - name: Login to Docker Hub
+ if: steps.create_release.outputs.tag != ''
+ uses: docker/login-action@v4
+ with:
+ registry: ${{ forgejo.server_url }}
+ username: ${{ vars.GIT_USERNAME }}
+ password: ${{ secrets.GIT_PAT }}
+
+# - name: Set up QEMU
+# if: steps.semrel.outputs.version != ''
+# uses: docker/setup-qemu-action@v4
+
+ - name: Set up Docker Buildx
+ if: steps.create_release.outputs.tag != ''
+ uses: docker/setup-buildx-action@v4
+
+ - name: Build and push
+ uses: docker/build-push-action@v7
+ with:
+ push: false
+ tags: actions/notify-slim:${{ steps.create_release.outputs.tag }}
diff --git a/.golang-ci.yaml b/.golang-ci.yaml
new file mode 100644
index 0000000..b5d12d0
--- /dev/null
+++ b/.golang-ci.yaml
@@ -0,0 +1,90 @@
+version: "2"
+run:
+ concurrency: 4
+output:
+ formats:
+ text:
+ print-linter-name: true
+ print-issued-lines: true
+ colors: true
+ path: stdout
+linters:
+ enable:
+ - bodyclose
+ - depguard
+ - errorlint
+ - forcetypeassert
+ - gochecknoinits
+ - gocritic
+ - gosec
+ - misspell
+ - nakedret
+ - revive
+ - sqlclosecheck
+ - wastedassign
+ disable:
+ - noctx
+ - unparam
+ settings:
+ depguard:
+ rules:
+ main:
+ list-mode: original
+ allow: []
+ deny:
+ - pkg: github.com/stretchr/testify
+ desc: Do not use a testing framework
+ gocritic:
+ disabled-checks:
+ - wrapperFunc
+ - typeDefFirst
+ - ifElseChain
+ - dupImport
+ - hugeParam
+ enabled-tags:
+ - performance
+ - style
+ - experimental
+ gosec:
+ excludes:
+ - G104
+ - G102
+ - G304
+ - G307
+ misspell:
+ locale: US
+ nakedret:
+ max-func-lines: 0
+ revive:
+ severity: error
+ rules:
+ - name: errorf
+ - name: context-as-argument
+ - name: error-return
+ - name: increment-decrement
+ - name: indent-error-flow
+ - name: superfluous-else
+ - name: unused-parameter
+ - name: unreachable-code
+ - name: atomic
+ - name: empty-lines
+ - name: early-return
+ exclusions:
+ paths:
+ - generator/
+ - internal/testutils
+ generated: lax
+ warn-unused: true
+ # Excluding configuration per-path, per-linter, per-text and per-source.
+ rules:
+ # Exclude some linters from running on tests files.
+ - path: _test\.go
+ linters:
+ - gochecknoinits
+formatters:
+ enable:
+ - gofmt
+ - goimports
+# settings:
+# goimports:
+# local-prefixes:
diff --git a/.releaserc.json b/.releaserc.json
new file mode 100644
index 0000000..d36c572
--- /dev/null
+++ b/.releaserc.json
@@ -0,0 +1,10 @@
+{
+ "branches": ["main"],
+ "tagFormat": "v${version}",
+ "plugins": [
+ "@semantic-release/commit-analyzer",
+ "@semantic-release/release-notes-generator",
+ "@semantic-release/changelog",
+ "@semantic-release/git"
+ ]
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..3428ef0
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,8 @@
+# [0.2.0](https://stackit-solutions.git.onstackit.cloud/actions/notify/compare/v0.1.2...v0.2.0) (2026-04-17)
+
+
+### Features
+
+* linting ([9d4e8c9](https://stackit-solutions.git.onstackit.cloud/actions/notify/commit/9d4e8c9a9dc3fcc133299e978fed191ad6052aac))
+* linting ([5b93809](https://stackit-solutions.git.onstackit.cloud/actions/notify/commit/5b938091d705e01f6467cdd6be9144e491c66502))
+* pipeline container build ([0414cf6](https://stackit-solutions.git.onstackit.cloud/actions/notify/commit/0414cf6dfb9956c85bb48f5217806841f5819716))
diff --git a/Dockerfile b/Dockerfile
index 20cd801..f3035dc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,10 +1,29 @@
-FROM golang:1.26
+FROM golang:1.26 AS builder
-WORKDIR /src
+RUN apt-get update && apt-get -y install upx
+
+WORKDIR /app
+
+ENV CGO_ENABLED=0
COPY . .
-RUN go get -u github.com/sethvargo/go-githubactions/... \
- && go mod tidy \
- && go build -o /bin/google-chat-action
+RUN go mod tidy && go build \
+ -a \
+ -trimpath \
+ -ldflags "-s -w -extldflags '-static'" \
+ -installsuffix cgo \
+ -tags netgo \
+ -o /bin/google-chat-action \
+ .
+
+RUN strip /bin/google-chat-action
+
+RUN upx -q -9 /bin/google-chat-action
+
+FROM scratch
+
+COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
+
+COPY --from=builder /bin/google-chat-action /bin/google-chat-action
ENTRYPOINT ["/bin/google-chat-action"]
diff --git a/Dockerfile.big b/Dockerfile.big
new file mode 100644
index 0000000..20cd801
--- /dev/null
+++ b/Dockerfile.big
@@ -0,0 +1,10 @@
+FROM golang:1.26
+
+WORKDIR /src
+COPY . .
+
+RUN go get -u github.com/sethvargo/go-githubactions/... \
+ && go mod tidy \
+ && go build -o /bin/google-chat-action
+
+ENTRYPOINT ["/bin/google-chat-action"]
diff --git a/README.md b/README.md
index d305f27..97d5ff4 100644
--- a/README.md
+++ b/README.md
@@ -13,23 +13,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Checkout
- uses: actions/checkout@v6
-
- - name: Get commit hash
- if: ${{ always() }}
- run: echo "::set-output name=sha8::$(echo ${GITHUB_SHA} | cut -c1-8)"
- id: slug
-
- - name: Chat Setup
- if: ${{ always() }}
- uses: https://stackit-solutions.git.onstackit.cloud/actions/notify@v0
- with:
- project: ${{ github.repository }}
- commit: ${{ steps.slug.outputs.sha8 }}
- branch: ${{ github.ref }}
- status: ${{ job.status }}
- actionid: ${{ github.repository }}/runs/${{ github.run_id }}
- webhook: "https://chat.googleapis.com/v1/spaces/AAAAzPcAy4s/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=MmdzluicdrdkyUAV_QwB6BzlLcIhbfrwNzxVrEllaec%3D&threadKey=git-commit"
+ # ... all your steps
+ - name: Sample Chat Message
+ if: ${{ always() }} # runs als after fails
+ uses: https://stackit-solutions.git.onstackit.cloud/actions/notify@v0.1.2
+ with:
+ title: "[START] sample test (${{ forgejo.run_number }})"
+ author: ${{ forgejo.actor }}
+ giturl: ${{ forgejo.server_url }}
+ iconslug: instacart # optional
+ # status: ${{ job.status }} # optional
+ actionid: ${{ forgejo.run_number }}
+ webhook: "${{ secrets.WEBHOOK_URL }}"
+ event_body: "This is a sample TEXT
with a new line" # optional
```
+
+TODO - icon_slug
diff --git a/docker-slimbuild b/docker-slimbuild
deleted file mode 100644
index 6a8459c..0000000
--- a/docker-slimbuild
+++ /dev/null
@@ -1,31 +0,0 @@
-FROM golang:1.26 AS builder
-
-RUN apt-get update && apt-get -y install upx
-
-WORKDIR /app
-#RUN mkdir -p $GOPATH/src/github.com/DTherHtun/google-chat-action
-#ADD . $GOPATH/src/github.com/DTherHtun/google-chat-action
-# RUN go get -u github.com/sethvargo/go-githubactions/...
-ENV CGO_ENABLED=0
-COPY . .
-
-RUN go mod tidy && go build \
- -a \
- -trimpath \
- -ldflags "-s -w -extldflags '-static'" \
- -installsuffix cgo \
- -tags netgo \
- -o /bin/google-chat-action \
- .
-
-RUN strip /bin/google-chat-action
-
-RUN upx -q -9 /bin/google-chat-action
-
-FROM scratch
-
-COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
-
-COPY --from=builder /bin/google-chat-action /bin/google-chat-action
-
-ENTRYPOINT ["/bin/google-chat-action"]
diff --git a/google-chat-action.png b/google-chat-action.png
index cbab7f1..fad33f0 100644
Binary files a/google-chat-action.png and b/google-chat-action.png differ
diff --git a/message.tpl b/message.tpl
index 3a50378..b20a0d7 100644
--- a/message.tpl
+++ b/message.tpl
@@ -27,7 +27,7 @@
{
"textParagraph": {
"text": "{{ .EventBody }}",
- "maxLines": 2
+ "maxLines": 5
}
},
{