Skip to content

Commit ce8cd69

Browse files
committed
feat(ci): add github container registry support and update dependencies
- configure ghcr.io login and push permissions for docker workflows - update go dependencies including whatsmeow and fasthttp - bump app version to v7.5.0 - improve docker image tagging with multi-registry support
1 parent 44137fb commit ce8cd69

File tree

4 files changed

+72
-11
lines changed

4 files changed

+72
-11
lines changed

.github/workflows/build-docker-image.yaml

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,22 @@ jobs:
1313
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
1414
environment: production
1515
runs-on: ubuntu-latest
16+
permissions:
17+
contents: read
18+
packages: write
1619
steps:
1720
- uses: actions/checkout@v4
1821
- name: Login Registry
1922
uses: docker/login-action@v3
2023
with:
2124
username: ${{ secrets.REGISTRY_USERNAME }}
2225
password: ${{ secrets.REGISTRY_PASSWORD }}
26+
- name: Login GitHub Container Registry
27+
uses: docker/login-action@v3
28+
with:
29+
registry: ghcr.io
30+
username: ${{ github.actor }}
31+
password: ${{ secrets.GITHUB_TOKEN }}
2332
- name: Set up Docker Buildx
2433
uses: docker/setup-buildx-action@v3
2534
- name: Build and push
@@ -28,19 +37,34 @@ jobs:
2837
push: true
2938
context: .
3039
file: ./docker/golang.Dockerfile
31-
tags: ${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest,${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-amd, ${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-amd
40+
tags: |
41+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest
42+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-amd
43+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-amd
44+
ghcr.io/${{ github.repository_owner }}/go-whatsapp-web-multidevice:latest
45+
ghcr.io/${{ github.repository_owner }}/go-whatsapp-web-multidevice:latest-amd
46+
ghcr.io/${{ github.repository_owner }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-amd
3247
3348
build-and-push-arm:
3449
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
3550
environment: production
3651
runs-on: [ARM64]
52+
permissions:
53+
contents: read
54+
packages: write
3755
steps:
3856
- uses: actions/checkout@v4
3957
- name: Login Registry
4058
uses: docker/login-action@v3
4159
with:
4260
username: ${{ secrets.REGISTRY_USERNAME }}
4361
password: ${{ secrets.REGISTRY_PASSWORD }}
62+
- name: Login GitHub Container Registry
63+
uses: docker/login-action@v3
64+
with:
65+
registry: ghcr.io
66+
username: ${{ github.actor }}
67+
password: ${{ secrets.GITHUB_TOKEN }}
4468
- name: Set up Docker Buildx
4569
uses: docker/setup-buildx-action@v3
4670
- name: Build and push
@@ -49,18 +73,31 @@ jobs:
4973
push: true
5074
context: .
5175
file: ./docker/golang.Dockerfile
52-
tags: ${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-arm, ${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-arm
76+
tags: |
77+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-arm
78+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-arm
79+
ghcr.io/${{ github.repository_owner }}/go-whatsapp-web-multidevice:latest-arm
80+
ghcr.io/${{ github.repository_owner }}/go-whatsapp-web-multidevice:${{ github.ref_name }}-arm
5381
5482
merge-manifest:
5583
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
5684
runs-on: ubuntu-latest
5785
needs: [build-and-push-amd, build-and-push-arm]
86+
permissions:
87+
contents: read
88+
packages: write
5889
steps:
5990
- name: Login Registry
6091
uses: docker/login-action@v3
6192
with:
6293
username: ${{ secrets.REGISTRY_USERNAME }}
6394
password: ${{ secrets.REGISTRY_PASSWORD }}
95+
- name: Login GitHub Container Registry
96+
uses: docker/login-action@v3
97+
with:
98+
registry: ghcr.io
99+
username: ${{ github.actor }}
100+
password: ${{ secrets.GITHUB_TOKEN }}
64101
- name: Set up Docker Buildx
65102
uses: docker/setup-buildx-action@v3
66103
- name: Create Versioned Manifest (${{ github.ref_name }})
@@ -72,4 +109,14 @@ jobs:
72109
run: |
73110
docker buildx imagetools create -t ${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest \
74111
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-amd \
75-
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-arm
112+
${{ secrets.REGISTRY_USERNAME }}/go-whatsapp-web-multidevice:latest-arm
113+
- name: Create Versioned Manifest (GHCR) (${{ github.ref_name }})
114+
run: |
115+
docker buildx imagetools create -t ghcr.io/aldinokemal/go-whatsapp-web-multidevice:${{ github.ref_name }} \
116+
ghcr.io/aldinokemal/go-whatsapp-web-multidevice:${{ github.ref_name }}-amd \
117+
ghcr.io/aldinokemal/go-whatsapp-web-multidevice:${{ github.ref_name }}-arm
118+
- name: Create Latest Manifest (GHCR)
119+
run: |
120+
docker buildx imagetools create -t ghcr.io/aldinokemal/go-whatsapp-web-multidevice:latest \
121+
ghcr.io/aldinokemal/go-whatsapp-web-multidevice:latest-amd \
122+
ghcr.io/aldinokemal/go-whatsapp-web-multidevice:latest-arm

src/config/settings.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
)
66

77
var (
8-
AppVersion = "v7.4.1"
8+
AppVersion = "v7.5.0"
99
AppPort = "3000"
1010
AppDebug = false
1111
AppOs = "AldinoKemal"

src/go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ require (
1212
github.com/gofiber/websocket/v2 v2.2.1
1313
github.com/google/uuid v1.6.0
1414
github.com/lib/pq v1.10.9
15-
github.com/mark3labs/mcp-go v0.37.0
16-
github.com/mattn/go-sqlite3 v1.14.30
15+
github.com/mark3labs/mcp-go v0.38.0
16+
github.com/mattn/go-sqlite3 v1.14.32
1717
github.com/sirupsen/logrus v1.9.3
1818
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
1919
github.com/spf13/cobra v1.9.1
2020
github.com/spf13/viper v1.20.1
2121
github.com/stretchr/testify v1.10.0
22-
github.com/valyala/fasthttp v1.64.0
22+
github.com/valyala/fasthttp v1.65.0
2323
go.mau.fi/libsignal v0.2.0
24-
go.mau.fi/whatsmeow v0.0.0-20250807072145-72ce90b82194
24+
go.mau.fi/whatsmeow v0.0.0-20250816112049-1b82e4b52df1
2525
golang.org/x/image v0.30.0
2626
google.golang.org/protobuf v1.36.7
2727
)
@@ -48,7 +48,7 @@ require (
4848
github.com/mattn/go-isatty v0.0.20 // indirect
4949
github.com/mattn/go-runewidth v0.0.16 // indirect
5050
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
51-
github.com/petermattis/goid v0.0.0-20250721140440-ea1c0173183e // indirect
51+
github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe // indirect
5252
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
5353
github.com/rivo/uniseg v0.4.7 // indirect
5454
github.com/rs/zerolog v1.34.0 // indirect
@@ -62,9 +62,9 @@ require (
6262
github.com/valyala/bytebufferpool v1.0.0 // indirect
6363
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
6464
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
65-
go.mau.fi/util v0.8.8 // indirect
65+
go.mau.fi/util v0.9.0 // indirect
6666
golang.org/x/crypto v0.41.0 // indirect
67-
golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect
67+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b // indirect
6868
golang.org/x/net v0.43.0 // indirect
6969
golang.org/x/sys v0.35.0 // indirect
7070
golang.org/x/text v0.28.0 // indirect

src/go.sum

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ github.com/mark3labs/mcp-go v0.36.0 h1:rIZaijrRYPeSbJG8/qNDe0hWlGrCJ7FWHNMz2SQpT
7070
github.com/mark3labs/mcp-go v0.36.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g=
7171
github.com/mark3labs/mcp-go v0.37.0 h1:BywvZLPRT6Zx6mMG/MJfxLSZQkTGIcJSEGKsvr4DsoQ=
7272
github.com/mark3labs/mcp-go v0.37.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g=
73+
github.com/mark3labs/mcp-go v0.38.0 h1:E5tmJiIXkhwlV0pLAwAT0O5ZjUZSISE/2Jxg+6vpq4I=
74+
github.com/mark3labs/mcp-go v0.38.0/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g=
7375
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
7476
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
7577
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
@@ -81,10 +83,14 @@ github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6T
8183
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
8284
github.com/mattn/go-sqlite3 v1.14.30 h1:bVreufq3EAIG1Quvws73du3/QgdeZ3myglJlrzSYYCY=
8385
github.com/mattn/go-sqlite3 v1.14.30/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
86+
github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs=
87+
github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
8488
github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4=
8589
github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY=
8690
github.com/petermattis/goid v0.0.0-20250721140440-ea1c0173183e h1:D0bJD+4O3G4izvrQUmzCL80zazlN7EwJ0PPDhpJWC/I=
8791
github.com/petermattis/goid v0.0.0-20250721140440-ea1c0173183e/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
92+
github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe h1:vHpqOnPlnkba8iSxU4j/CvDSS9J4+F4473esQsYLGoE=
93+
github.com/petermattis/goid v0.0.0-20250813065127-a731cc31b4fe/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4=
8894
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
8995
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
9096
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
@@ -130,6 +136,8 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
130136
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
131137
github.com/valyala/fasthttp v1.64.0 h1:QBygLLQmiAyiXuRhthf0tuRkqAFcrC42dckN2S+N3og=
132138
github.com/valyala/fasthttp v1.64.0/go.mod h1:dGmFxwkWXSK0NbOSJuF7AMVzU+lkHz0wQVvVITv2UQA=
139+
github.com/valyala/fasthttp v1.65.0 h1:j/u3uzFEGFfRxw79iYzJN+TteTJwbYkru9uDp3d0Yf8=
140+
github.com/valyala/fasthttp v1.65.0/go.mod h1:P/93/YkKPMsKSnATEeELUCkG8a7Y+k99uxNHVbKINr4=
133141
github.com/wk8/go-ordered-map/v2 v2.1.8 h1:5h/BUHu93oj4gIdvHHHGsScSTMijfx5PeYkE/fJgbpc=
134142
github.com/wk8/go-ordered-map/v2 v2.1.8/go.mod h1:5nJHM5DyteebpVlHnWMV0rPz6Zp7+xBAnxjb1X5vnTw=
135143
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
@@ -141,10 +149,14 @@ go.mau.fi/libsignal v0.2.0 h1:oRXj3OHhEJq51BFEM8/50UZblmWiTYH93hsNTPcbk90=
141149
go.mau.fi/libsignal v0.2.0/go.mod h1:tvjoDsMejgT38CXTXwqaYu8itBiY8O2Mb6biWvZBb9k=
142150
go.mau.fi/util v0.8.8 h1:OnuEEc/sIJFhnq4kFggiImUpcmnmL/xpvQMRu5Fiy5c=
143151
go.mau.fi/util v0.8.8/go.mod h1:Y/kS3loxTEhy8Vill513EtPXr+CRDdae+Xj2BXXMy/c=
152+
go.mau.fi/util v0.9.0 h1:ya3s3pX+Y8R2fgp0DbE7a0o3FwncoelDX5iyaeVE8ls=
153+
go.mau.fi/util v0.9.0/go.mod h1:pdL3lg2aaeeHIreGXNnPwhJPXkXdc3ZxsI6le8hOWEA=
144154
go.mau.fi/whatsmeow v0.0.0-20250801095850-a23b35dea4be h1:gtveTRdwlG77JuhAWN0yfGXYacR+KkloWvQcLMLlUsQ=
145155
go.mau.fi/whatsmeow v0.0.0-20250801095850-a23b35dea4be/go.mod h1:ltDTXUgOAT7LcFKp11H+5S7UY7+xHBMGzNJcv3dLHGk=
146156
go.mau.fi/whatsmeow v0.0.0-20250807072145-72ce90b82194 h1:/ow/oKzvxxwJEyCJ4bq8U7W2yar2f0HSq89yto+sD9Q=
147157
go.mau.fi/whatsmeow v0.0.0-20250807072145-72ce90b82194/go.mod h1:ltDTXUgOAT7LcFKp11H+5S7UY7+xHBMGzNJcv3dLHGk=
158+
go.mau.fi/whatsmeow v0.0.0-20250816112049-1b82e4b52df1 h1:CP2hnvzEr15aBAWimDZCJ/k8UExGjHHVVRPoXKF9a0k=
159+
go.mau.fi/whatsmeow v0.0.0-20250816112049-1b82e4b52df1/go.mod h1:xD0DR3s4T6PDd3BzgQG05AzLWxdKCmnvdCP3UuQvn9w=
148160
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
149161
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
150162
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
@@ -159,6 +171,8 @@ golang.org/x/exp v0.0.0-20250718183923-645b1fa84792 h1:R9PFI6EUdfVKgwKjZef7QIwGc
159171
golang.org/x/exp v0.0.0-20250718183923-645b1fa84792/go.mod h1:A+z0yzpGtvnG90cToK5n2tu8UJVP2XUATh+r+sfOOOc=
160172
golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90=
161173
golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg=
174+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b h1:DXr+pvt3nC887026GRP39Ej11UATqWDmWuS99x26cD0=
175+
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4=
162176
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
163177
golang.org/x/image v0.29.0 h1:HcdsyR4Gsuys/Axh0rDEmlBmB68rW1U9BUdB3UVHsas=
164178
golang.org/x/image v0.29.0/go.mod h1:RVJROnf3SLK8d26OW91j4FrIHGbsJ8QnbEocVTOWQDA=

0 commit comments

Comments
 (0)