[main] Template update
Some checks failed
Build, Push, and Deploy to Nomad / docker-nomad (push) Failing after 4m20s
Some checks failed
Build, Push, and Deploy to Nomad / docker-nomad (push) Failing after 4m20s
This commit is contained in:
61
.gitea/workflows/main.yml
Normal file
61
.gitea/workflows/main.yml
Normal file
@@ -0,0 +1,61 @@
|
||||
name: Build, Push, and Deploy to Nomad
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
docker-nomad:
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Log in to Container Registry
|
||||
run: echo ${{ secrets.password }} | docker login registry.i80.dk -u ${{ secrets.username }} --password-stdin
|
||||
|
||||
- name: Build Docker Image
|
||||
run: |
|
||||
COMMIT_HASH=$(git rev-parse --short HEAD)
|
||||
docker build -t registry.i80.dk/gitea/pythontemplateproject:latest -t registry.i80.dk/gitea/pythontemplateproject:${COMMIT_HASH} .
|
||||
|
||||
|
||||
- name: Push Docker Image
|
||||
run: |
|
||||
COMMIT_HASH=$(git rev-parse --short HEAD)
|
||||
echo "registry.i80.dk/gitea/pythontemplateproject:latest"
|
||||
echo "registry.i80.dk/gitea/pythontemplateproject:${COMMIT_HASH}"
|
||||
docker push registry.i80.dk/gitea/pythontemplateproject:${COMMIT_HASH}
|
||||
docker push registry.i80.dk/gitea/pythontemplateproject:latest
|
||||
|
||||
|
||||
- name: Validate Nomad Job
|
||||
env:
|
||||
NOMAD_ADDR: https://nomad.i80.dk
|
||||
run: nomad job validate .gitea/workflows/nomad-job.hcl
|
||||
|
||||
- name: Stop old deployment
|
||||
env:
|
||||
NOMAD_ADDR: https://nomad.i80.dk
|
||||
run: nomad job stop -purge -no-shutdown-delay pythontemplateproject
|
||||
continue-on-error: true
|
||||
|
||||
|
||||
- name: Apply Nomad Job
|
||||
env:
|
||||
NOMAD_ADDR: https://nomad.i80.dk
|
||||
run: nomad job run .gitea/workflows/nomad-job.hcl
|
||||
|
||||
- name: Update Nginx Configuration
|
||||
run: ssh runner@nomad sudo /opt/nginx_updater/venv/bin/python3 /opt/nginx_updater/nginx_updater.py pythontemplateproject
|
||||
|
||||
|
||||
|
||||
# - name: Restart Nomad Job
|
||||
# env:
|
||||
# NOMAD_ADDR: https://nomad.i80.dk
|
||||
# run: |
|
||||
# nomad job stop pythontemplateproject
|
||||
# sleep 5 # Optional: Wait to ensure the old allocation is stopped
|
||||
# nomad job run .gitea/workflows/nomad-job.hcl
|
||||
@@ -50,6 +50,8 @@ jobs:
|
||||
- name: Update Nginx Configuration
|
||||
run: ssh runner@nomad sudo /opt/nginx_updater/venv/bin/python3 /opt/nginx_updater/nginx_updater.py [[PROJECT_NAME]]
|
||||
|
||||
- name: Update Forwarder Configuration
|
||||
run: ssh runner@nomad sudo /opt/nginx_updater/venv/bin/python3 /opt/nginx_updater/update_forwarder.py [[PROJECT_NAME]]
|
||||
|
||||
|
||||
# - name: Restart Nomad Job
|
||||
|
||||
60
.gitea/workflows/nomad-job.hcl
Normal file
60
.gitea/workflows/nomad-job.hcl
Normal file
@@ -0,0 +1,60 @@
|
||||
job "pythontemplateproject" {
|
||||
region = "global"
|
||||
datacenters = ["dc1"]
|
||||
type = "service"
|
||||
|
||||
update {
|
||||
stagger = "60s"
|
||||
max_parallel = 1
|
||||
progress_deadline = "6m"
|
||||
}
|
||||
|
||||
group "pythontemplateproject-group" {
|
||||
count = 1
|
||||
|
||||
network {
|
||||
port "port-app" {
|
||||
to = 9048 # Internal application port
|
||||
}
|
||||
}
|
||||
|
||||
# Register the service with Consul
|
||||
service {
|
||||
provider = "consul"
|
||||
name = "pythontemplateproject"
|
||||
port = "port-app"
|
||||
|
||||
# Traefik-specific tags for routing
|
||||
tags = [
|
||||
"PORT=${NOMAD_PORT_port-app}"
|
||||
]
|
||||
|
||||
# Define a health check using TCP
|
||||
check {
|
||||
name = "tcp_check"
|
||||
type = "tcp"
|
||||
interval = "10s"
|
||||
timeout = "2s"
|
||||
}
|
||||
}
|
||||
|
||||
task "pythontemplateproject-task" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "registry.i80.dk/gitea/pythontemplateproject:latest"
|
||||
ports = ["port-app"]
|
||||
}
|
||||
|
||||
env {
|
||||
APP_ENV = "production"
|
||||
PORT = "${NOMAD_PORT_port-app}"
|
||||
}
|
||||
|
||||
resources {
|
||||
cpu = 250
|
||||
memory = 80
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
job "{{PROJECT_NAME}}" {
|
||||
job "[[PROJECT_NAME]]" {
|
||||
region = "global"
|
||||
datacenters = ["dc1"]
|
||||
type = "service"
|
||||
@@ -42,7 +42,7 @@ job "{{PROJECT_NAME}}" {
|
||||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "registry.i80.dk/gitea/{{PROJECT_NAME}}:latest"
|
||||
image = "registry.i80.dk/gitea/[[PROJECT_NAME]]:latest"
|
||||
ports = ["port-app"]
|
||||
}
|
||||
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,3 +2,5 @@
|
||||
.venv/*
|
||||
.ídea
|
||||
.idea/*
|
||||
.gitea/**/build*/
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user