Correct Tags
Some checks failed
CI Pipeline for the Go API / CD - Kubernetes Smoke Test (push) Successful in 7s
CI Pipeline for the Go API / CI - Go Vet (basic static check) (push) Successful in 9s
CI Pipeline for the Go API / CI - Docker Image Build Test (push) Successful in 18s
CI Pipeline for the Go API / CI - Go Build & Cross-Compile (push) Successful in 31s
CI Pipeline for the Go API / Push Image to Gitea Registry (push) Successful in 17s
CI Pipeline for the Go API / Kubernetes Deployment (push) Failing after 4m5s
Some checks failed
CI Pipeline for the Go API / CD - Kubernetes Smoke Test (push) Successful in 7s
CI Pipeline for the Go API / CI - Go Vet (basic static check) (push) Successful in 9s
CI Pipeline for the Go API / CI - Docker Image Build Test (push) Successful in 18s
CI Pipeline for the Go API / CI - Go Build & Cross-Compile (push) Successful in 31s
CI Pipeline for the Go API / Push Image to Gitea Registry (push) Successful in 17s
CI Pipeline for the Go API / Kubernetes Deployment (push) Failing after 4m5s
This commit is contained in:
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
docker-test:
|
docker-test:
|
||||||
name: Docker Image Build Test
|
name: CI - Docker Image Build Test
|
||||||
runs-on: docker-latest
|
runs-on: docker-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
docker build -t go-api-test .
|
docker build -t go-api-test .
|
||||||
|
|
||||||
go-test:
|
go-test:
|
||||||
name: Go Vet (basic static check)
|
name: CI - Go Vet (basic static check)
|
||||||
runs-on: docker-latest
|
runs-on: docker-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -31,7 +31,7 @@ jobs:
|
|||||||
run: go vet ./...
|
run: go vet ./...
|
||||||
|
|
||||||
go-build:
|
go-build:
|
||||||
name: Go Build & Cross-Compile
|
name: CI - Go Build & Cross-Compile
|
||||||
runs-on: docker-latest
|
runs-on: docker-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -65,27 +65,31 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Compute image tag
|
||||||
|
run: |
|
||||||
|
TAG="${GITHUB_SHA:-${{ github.sha }}}"
|
||||||
|
echo "TAG=$TAG" >> $GITHUB_ENV
|
||||||
|
echo "TAG_SHORT=${TAG:0:12}" >> $GITHUB_ENV
|
||||||
|
echo "BASE_IMAGE=git.petyaserver.uk/${{ secrets.REGISTRY_USER }}/go-api" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Docker login
|
- name: Docker login
|
||||||
env:
|
env:
|
||||||
REGISTRY_HOST: git.petyaserver.uk
|
|
||||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
run: |
|
run: |
|
||||||
: "${REGISTRY_HOST:=git.petyaserver.uk}"
|
echo "$REGISTRY_PASSWORD" | docker login git.petyaserver.uk -u "$REGISTRY_USER" --password-stdin
|
||||||
echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_HOST" -u "$REGISTRY_USER" --password-stdin
|
|
||||||
|
|
||||||
- name: Build & push
|
- name: Build (latest + sha)
|
||||||
env:
|
|
||||||
REGISTRY_HOST: git.petyaserver.uk
|
|
||||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
|
||||||
run: |
|
run: |
|
||||||
: "${REGISTRY_HOST:=git.petyaserver.uk}"
|
docker build -t "$BASE_IMAGE:$TAG" -t "$BASE_IMAGE:latest" .
|
||||||
IMAGE="$REGISTRY_HOST/$REGISTRY_USER/go-api:latest"
|
|
||||||
docker build -t "$IMAGE" .
|
- name: Push (latest + sha)
|
||||||
docker push "$IMAGE"
|
run: |
|
||||||
|
docker push "$BASE_IMAGE:$TAG"
|
||||||
|
docker push "$BASE_IMAGE:latest"
|
||||||
|
|
||||||
k8s-some-test:
|
k8s-some-test:
|
||||||
name: Kubernetes Smoke Test
|
name: CD - Kubernetes Smoke Test
|
||||||
runs-on: docker-latest
|
runs-on: docker-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -110,8 +114,7 @@ jobs:
|
|||||||
runs-on: docker-latest
|
runs-on: docker-latest
|
||||||
needs: [go-build, k8s-some-test, docker-push]
|
needs: [go-build, k8s-some-test, docker-push]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- uses: actions/checkout@v3
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Configure kubeconfig
|
- name: Configure kubeconfig
|
||||||
run: |
|
run: |
|
||||||
@@ -125,10 +128,14 @@ jobs:
|
|||||||
run: kubectl get nodes -o wide
|
run: kubectl get nodes -o wide
|
||||||
|
|
||||||
- name: Apply Deployment to Cluster
|
- name: Apply Deployment to Cluster
|
||||||
run: kubectl apply -f k8s/service.yaml
|
|
||||||
|
|
||||||
- name: Apply Service to Cluster
|
|
||||||
run: kubectl apply -f k8s/deployment.yaml
|
run: kubectl apply -f k8s/deployment.yaml
|
||||||
|
|
||||||
- name: Verify rollout
|
- name: Apply Service to Cluster
|
||||||
run: kubectl rollout status deployment/go-api
|
run: kubectl apply -f k8s/service.yaml
|
||||||
|
|
||||||
|
- name: Tag Image
|
||||||
|
run: |
|
||||||
|
kubectl set image deployment/go-api go-api="$BASE_IMAGE:$TAG" --record
|
||||||
|
|
||||||
|
- name: Verify Rollout
|
||||||
|
run: kubectl rollout status deployment/go-api --timeout=240s
|
||||||
|
|||||||
2
main.go
2
main.go
@@ -22,7 +22,7 @@ type AddResponse struct {
|
|||||||
|
|
||||||
func healthHandler(w http.ResponseWriter, r *http.Request) {
|
func healthHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
json.NewEncoder(w).Encode(HealthResponse{Status: "healthy"})
|
json.NewEncoder(w).Encode(HealthResponse{Status: "oke"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func addHandler(w http.ResponseWriter, r *http.Request) {
|
func addHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|||||||
Reference in New Issue
Block a user