Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 02a108a58e |
@@ -4,6 +4,9 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@@ -24,6 +27,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: test
|
needs: test
|
||||||
|
if: gitea.event_name == 'push'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|||||||
+1
-32
@@ -1,14 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"log"
|
"log"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
|
||||||
"syscall"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"gitea.leeworks.dev/0xwheatyz/gitea-mobile/internal/config"
|
"gitea.leeworks.dev/0xwheatyz/gitea-mobile/internal/config"
|
||||||
giteaclient "gitea.leeworks.dev/0xwheatyz/gitea-mobile/internal/gitea"
|
giteaclient "gitea.leeworks.dev/0xwheatyz/gitea-mobile/internal/gitea"
|
||||||
@@ -40,35 +36,8 @@ func main() {
|
|||||||
handler = middleware.Auth(cfg.SessionSecret, cfg.GiteaToken)(handler)
|
handler = middleware.Auth(cfg.SessionSecret, cfg.GiteaToken)(handler)
|
||||||
handler = middleware.Logging()(handler)
|
handler = middleware.Logging()(handler)
|
||||||
|
|
||||||
srv := &http.Server{
|
|
||||||
Addr: cfg.ListenAddr,
|
|
||||||
Handler: handler,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Channel to receive shutdown signals.
|
|
||||||
quit := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(quit, syscall.SIGTERM, syscall.SIGINT)
|
|
||||||
|
|
||||||
// Start server in a goroutine.
|
|
||||||
go func() {
|
|
||||||
slog.Info("server starting", "addr", cfg.ListenAddr, "gitea_url", cfg.GiteaURL)
|
slog.Info("server starting", "addr", cfg.ListenAddr, "gitea_url", cfg.GiteaURL)
|
||||||
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
if err := http.ListenAndServe(cfg.ListenAddr, handler); err != nil {
|
||||||
log.Fatalf("server error: %v", err)
|
log.Fatalf("server error: %v", err)
|
||||||
}
|
}
|
||||||
}()
|
|
||||||
|
|
||||||
// Block until a shutdown signal is received.
|
|
||||||
sig := <-quit
|
|
||||||
slog.Info("shutdown signal received, draining in-flight requests", "signal", sig.String())
|
|
||||||
|
|
||||||
// Give in-flight requests up to 15 seconds to complete.
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 15*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
if err := srv.Shutdown(ctx); err != nil {
|
|
||||||
slog.Error("server forced to shutdown", "error", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
slog.Info("server stopped gracefully")
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user