Skip to content

Commit 1be80fc

Browse files
Merge pull request #1 from zopdev/sample-go-api
add sample go api
2 parents dcc5ed9 + e7bddce commit 1be80fc

File tree

8 files changed

+655
-0
lines changed

8 files changed

+655
-0
lines changed

.github/workflows/package.yaml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Sample API
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
release_package:
10+
if: ${{ startsWith(github.ref, 'refs/tags/v')}}
11+
runs-on: ubuntu-latest
12+
13+
permissions:
14+
contents: read
15+
packages: write
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Go
22+
uses: actions/setup-go@v4
23+
with:
24+
go-version: '1.22'
25+
26+
- name: Get dependencies
27+
run: |
28+
go mod download
29+
30+
- name: Build
31+
run: |
32+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -buildvcs=false -o main
33+
34+
- name: Extract Release Tag
35+
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
36+
37+
- name: Log in to Docker Hub
38+
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
39+
with:
40+
username: "v4vikash"
41+
password: ${{ secrets.DOCKER_HUB_PAT }}
42+
43+
44+
- name: Build and push Docker image
45+
uses: docker/build-push-action@v4
46+
with:
47+
push: true
48+
context: .
49+
file: Dockerfile
50+
tags: zopdev/sample-go-api:${{ env.RELEASE_VERSION }}, zopdev/sample-go-api:latest

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.DS_store
2+
.idea
3+
.vscode
4+
.scannerwork
5+
6+
configs/.local.env
7+
coverage.txt

Dockerfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM alpine:latest
2+
3+
# Copy only the required directories and files
4+
COPY main ./main
5+
6+
7+
RUN chmod 777 /main
8+
9+
EXPOSE 8000
10+
11+
CMD ["/main"]

configs/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
HTTP_PORT=8000

go.mod

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
module github.com/sample-app
2+
3+
go 1.22.3
4+
5+
require gofr.dev v1.24.0
6+
7+
require (
8+
cloud.google.com/go v0.115.1 // indirect
9+
cloud.google.com/go/auth v0.9.5 // indirect
10+
cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
11+
cloud.google.com/go/compute/metadata v0.5.2 // indirect
12+
cloud.google.com/go/iam v1.2.0 // indirect
13+
cloud.google.com/go/pubsub v1.42.0 // indirect
14+
filippo.io/edwards25519 v1.1.0 // indirect
15+
github.com/DATA-DOG/go-sqlmock v1.5.2 // indirect
16+
github.com/XSAM/otelsql v0.34.0 // indirect
17+
github.com/beorn7/perks v1.0.1 // indirect
18+
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
19+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
20+
github.com/davecgh/go-spew v1.1.1 // indirect
21+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
22+
github.com/dustin/go-humanize v1.0.1 // indirect
23+
github.com/eclipse/paho.mqtt.golang v1.5.0 // indirect
24+
github.com/felixge/httpsnoop v1.0.4 // indirect
25+
github.com/go-logr/logr v1.4.2 // indirect
26+
github.com/go-logr/stdr v1.2.2 // indirect
27+
github.com/go-sql-driver/mysql v1.8.1 // indirect
28+
github.com/gogo/protobuf v1.3.2 // indirect
29+
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
30+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
31+
github.com/google/s2a-go v0.1.8 // indirect
32+
github.com/google/uuid v1.6.0 // indirect
33+
github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect
34+
github.com/googleapis/gax-go/v2 v2.13.0 // indirect
35+
github.com/gorilla/mux v1.8.1 // indirect
36+
github.com/gorilla/websocket v1.5.3 // indirect
37+
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
38+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
39+
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
40+
github.com/joho/godotenv v1.5.1 // indirect
41+
github.com/klauspost/compress v1.17.9 // indirect
42+
github.com/lib/pq v1.10.9 // indirect
43+
github.com/mattn/go-isatty v0.0.20 // indirect
44+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
45+
github.com/ncruces/go-strftime v0.1.9 // indirect
46+
github.com/openzipkin/zipkin-go v0.4.3 // indirect
47+
github.com/pierrec/lz4/v4 v4.1.21 // indirect
48+
github.com/pkg/errors v0.9.1 // indirect
49+
github.com/pmezard/go-difflib v1.0.0 // indirect
50+
github.com/prometheus/client_golang v1.20.4 // indirect
51+
github.com/prometheus/client_model v0.6.1 // indirect
52+
github.com/prometheus/common v0.59.1 // indirect
53+
github.com/prometheus/procfs v0.15.1 // indirect
54+
github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 // indirect
55+
github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 // indirect
56+
github.com/redis/go-redis/v9 v9.6.1 // indirect
57+
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
58+
github.com/segmentio/kafka-go v0.4.47 // indirect
59+
github.com/stretchr/testify v1.9.0 // indirect
60+
go.opencensus.io v0.24.0 // indirect
61+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
62+
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.55.0 // indirect
63+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect
64+
go.opentelemetry.io/otel v1.30.0 // indirect
65+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 // indirect
66+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0 // indirect
67+
go.opentelemetry.io/otel/exporters/prometheus v0.52.0 // indirect
68+
go.opentelemetry.io/otel/exporters/zipkin v1.30.0 // indirect
69+
go.opentelemetry.io/otel/metric v1.30.0 // indirect
70+
go.opentelemetry.io/otel/sdk v1.30.0 // indirect
71+
go.opentelemetry.io/otel/sdk/metric v1.30.0 // indirect
72+
go.opentelemetry.io/otel/trace v1.30.0 // indirect
73+
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
74+
go.uber.org/mock v0.4.0 // indirect
75+
golang.org/x/crypto v0.27.0 // indirect
76+
golang.org/x/net v0.29.0 // indirect
77+
golang.org/x/oauth2 v0.23.0 // indirect
78+
golang.org/x/sync v0.8.0 // indirect
79+
golang.org/x/sys v0.26.0 // indirect
80+
golang.org/x/term v0.25.0 // indirect
81+
golang.org/x/text v0.19.0 // indirect
82+
golang.org/x/time v0.6.0 // indirect
83+
google.golang.org/api v0.199.0 // indirect
84+
google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
85+
google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
86+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
87+
google.golang.org/grpc v1.67.1 // indirect
88+
google.golang.org/protobuf v1.35.1 // indirect
89+
gopkg.in/yaml.v3 v3.0.1 // indirect
90+
modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect
91+
modernc.org/libc v1.55.3 // indirect
92+
modernc.org/mathutil v1.6.0 // indirect
93+
modernc.org/memory v1.8.0 // indirect
94+
modernc.org/sqlite v1.33.1 // indirect
95+
modernc.org/strutil v1.2.0 // indirect
96+
modernc.org/token v1.1.0 // indirect
97+
)

0 commit comments

Comments
 (0)