mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender-pwa.git
synced 2025-08-07 04:09:17 +02:00
Resolve "testing building and linting pipeline for backend"
This commit is contained in:
55
.gitlab-ci.yml
Normal file
55
.gitlab-ci.yml
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- test
|
||||||
|
- docker
|
||||||
|
|
||||||
|
build-backend:
|
||||||
|
image: golang:1.21-alpine
|
||||||
|
stage: build
|
||||||
|
rules:
|
||||||
|
- changes:
|
||||||
|
- backend/**/*
|
||||||
|
script:
|
||||||
|
- cd backend
|
||||||
|
- go build -o htwkalender
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- backend/htwkalender
|
||||||
|
- backend/go.sum
|
||||||
|
- backend/go.mod
|
||||||
|
|
||||||
|
test:
|
||||||
|
image: golang:1.21-alpine
|
||||||
|
stage: test
|
||||||
|
rules:
|
||||||
|
- changes:
|
||||||
|
- backend/**/*
|
||||||
|
script:
|
||||||
|
- cd backend
|
||||||
|
- go test -v ./...
|
||||||
|
dependencies:
|
||||||
|
- build-backend
|
||||||
|
|
||||||
|
build-backend-image:
|
||||||
|
stage: docker
|
||||||
|
image: docker:20.10.16
|
||||||
|
services:
|
||||||
|
- name: docker:20.10.16-dind
|
||||||
|
alias: docker
|
||||||
|
tags:
|
||||||
|
- image
|
||||||
|
variables:
|
||||||
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||||
|
DOCKER_HOST: tcp://docker:2376
|
||||||
|
DOCKER_TLS_CERTDIR: "/certs"
|
||||||
|
DOCKER_TLS_VERIFY: 1
|
||||||
|
DOCKER_CERT_PATH: "/certs/client"
|
||||||
|
script:
|
||||||
|
- cd backend
|
||||||
|
- docker login -u $CI_DOCKER_REGISTRY_USER -p $CI_DOCKER_REGISTRY_PASSWORD $CI_DOCKER_REGISTRY
|
||||||
|
- docker build -t htwkalender-backend$IMAGE_TAG .
|
||||||
|
- docker tag htwkalender-backend$IMAGE_TAG $CI_DOCKER_REGISTRY_USER/htwkalender:backend
|
||||||
|
- docker push $CI_DOCKER_REGISTRY_USER/htwkalender:backend
|
||||||
|
only:
|
||||||
|
- main
|
||||||
|
- development
|
@@ -9,7 +9,7 @@ RUN go mod download
|
|||||||
|
|
||||||
# Copy the source from the current directory to the Working Directory inside the container
|
# Copy the source from the current directory to the Working Directory inside the container
|
||||||
COPY *.go ./
|
COPY *.go ./
|
||||||
COPY .. .
|
COPY . .
|
||||||
|
|
||||||
# Build the Go app
|
# Build the Go app
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o /htwkalender
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /htwkalender
|
||||||
|
@@ -9,6 +9,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestEvents_Contains(t *testing.T) {
|
func TestEvents_Contains(t *testing.T) {
|
||||||
|
specificTime, _ := types.ParseDateTime("2020-01-01 12:00:00.000Z")
|
||||||
|
|
||||||
type args struct {
|
type args struct {
|
||||||
event Event
|
event Event
|
||||||
}
|
}
|
||||||
@@ -26,20 +28,20 @@ func TestEvents_Contains(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "one event",
|
name: "one event",
|
||||||
m: Events{{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
m: Events{{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
||||||
args: args{event: Event{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
args: args{event: Event{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
||||||
want: true,
|
want: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "two events",
|
name: "two events",
|
||||||
m: Events{{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, {Day: "test2", Week: "test2", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
m: Events{{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}, {Day: "test2", Week: "test2", Start: specificTime, End: specificTime, Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
||||||
args: args{event: Event{Day: "test2", Week: "test2", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
args: args{event: Event{Day: "test2", Week: "test2", Start: specificTime, End: specificTime, Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
||||||
want: true,
|
want: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "two events with different values",
|
name: "two events with different values",
|
||||||
m: Events{{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test", UUID: "439ßu56rf8u9ijn4f4-2345345"}, {Day: "test2", Week: "test2", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2", UUID: "432a39ßu545349ijn4f4-23dsa45"}},
|
m: Events{{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test", UUID: "439ßu56rf8u9ijn4f4-2345345"}, {Day: "test2", Week: "test2", Start: specificTime, End: specificTime, Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2", UUID: "432a39ßu545349ijn4f4-23dsa45"}},
|
||||||
args: args{event: Event{Day: "test3", Week: "test3", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test3", Course: "test3", Prof: "test3", Rooms: "test3", EventType: "test3", UUID: "934mf43r34f-g68h7655tg3"}},
|
args: args{event: Event{Day: "test3", Week: "test3", Start: specificTime, End: specificTime, Name: "test3", Course: "test3", Prof: "test3", Rooms: "test3", EventType: "test3", UUID: "934mf43r34f-g68h7655tg3"}},
|
||||||
want: false,
|
want: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -53,6 +55,8 @@ func TestEvents_Contains(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEvent_Equals(t *testing.T) {
|
func TestEvent_Equals(t *testing.T) {
|
||||||
|
specificTime, _ := types.ParseDateTime("2020-01-01 12:00:00.000Z")
|
||||||
|
|
||||||
type fields struct {
|
type fields struct {
|
||||||
UUID string
|
UUID string
|
||||||
Day string
|
Day string
|
||||||
@@ -86,20 +90,20 @@ func TestEvent_Equals(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "one empty one not",
|
name: "one empty one not",
|
||||||
fields: fields{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
fields: fields{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
||||||
args: args{event: Event{}},
|
args: args{event: Event{}},
|
||||||
want: false,
|
want: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "one event",
|
name: "one event",
|
||||||
fields: fields{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
fields: fields{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
||||||
args: args{event: Event{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
args: args{event: Event{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"}},
|
||||||
want: true,
|
want: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "two events",
|
name: "two events",
|
||||||
fields: fields{Day: "test", Week: "test", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
fields: fields{Day: "test", Week: "test", Start: specificTime, End: specificTime, Name: "test", Course: "test", Prof: "test", Rooms: "test", EventType: "test"},
|
||||||
args: args{event: Event{Day: "test2", Week: "test2", Start: types.NowDateTime(), End: types.NowDateTime(), Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
args: args{event: Event{Day: "test2", Week: "test2", Start: specificTime, End: specificTime, Name: "test2", Course: "test2", Prof: "test2", Rooms: "test2", EventType: "test2"}},
|
||||||
want: false,
|
want: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Test_getDateFromWeekNumber(t *testing.T) {
|
func Test_getDateFromWeekNumber(t *testing.T) {
|
||||||
|
europeTime, _ := time.LoadLocation("Europe/Berlin")
|
||||||
|
|
||||||
type args struct {
|
type args struct {
|
||||||
year int
|
year int
|
||||||
weekNumber int
|
weekNumber int
|
||||||
@@ -25,7 +27,7 @@ func Test_getDateFromWeekNumber(t *testing.T) {
|
|||||||
weekNumber: 1,
|
weekNumber: 1,
|
||||||
dayName: "Montag",
|
dayName: "Montag",
|
||||||
},
|
},
|
||||||
want: time.Date(2021, 1, 4, 0, 0, 0, 0, time.UTC),
|
want: time.Date(2021, 1, 4, 0, 0, 0, 0, europeTime),
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -35,7 +37,7 @@ func Test_getDateFromWeekNumber(t *testing.T) {
|
|||||||
weekNumber: 57,
|
weekNumber: 57,
|
||||||
dayName: "Montag",
|
dayName: "Montag",
|
||||||
},
|
},
|
||||||
want: time.Date(2024, 1, 29, 0, 0, 0, 0, time.UTC),
|
want: time.Date(2024, 1, 29, 0, 0, 0, 0, europeTime),
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -45,7 +47,7 @@ func Test_getDateFromWeekNumber(t *testing.T) {
|
|||||||
weekNumber: 1,
|
weekNumber: 1,
|
||||||
dayName: "Montag",
|
dayName: "Montag",
|
||||||
},
|
},
|
||||||
want: time.Date(2023, 1, 2, 0, 0, 0, 0, time.UTC),
|
want: time.Date(2023, 1, 2, 0, 0, 0, 0, europeTime),
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -267,7 +267,6 @@ func Test_generateUUIDs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_createTimeFromHourAndMinuteString(t *testing.T) {
|
func Test_createTimeFromHourAndMinuteString(t *testing.T) {
|
||||||
europeTime, _ := time.LoadLocation("Europe/Berlin")
|
|
||||||
type args struct {
|
type args struct {
|
||||||
tableTime string
|
tableTime string
|
||||||
}
|
}
|
||||||
@@ -281,21 +280,21 @@ func Test_createTimeFromHourAndMinuteString(t *testing.T) {
|
|||||||
args: args{
|
args: args{
|
||||||
tableTime: "08:00",
|
tableTime: "08:00",
|
||||||
},
|
},
|
||||||
want: time.Date(0, 0, 0, 8, 0, 0, 0, europeTime),
|
want: time.Date(0, 0, 0, 8, 0, 0, 0, time.UTC),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Test 2",
|
name: "Test 2",
|
||||||
args: args{
|
args: args{
|
||||||
tableTime: "08:15",
|
tableTime: "08:15",
|
||||||
},
|
},
|
||||||
want: time.Date(0, 0, 0, 8, 15, 0, 0, europeTime),
|
want: time.Date(0, 0, 0, 8, 15, 0, 0, time.UTC),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Test 3",
|
name: "Test 3",
|
||||||
args: args{
|
args: args{
|
||||||
tableTime: "08:30",
|
tableTime: "08:30",
|
||||||
},
|
},
|
||||||
want: time.Date(0, 0, 0, 8, 30, 0, 0, europeTime),
|
want: time.Date(0, 0, 0, 8, 30, 0, 0, time.UTC),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
|
Reference in New Issue
Block a user