ci: add workflow to automation golang image creation
Some checks failed
Build and Push Golang Image / build-and-push (push) Failing after 9s
Some checks failed
Build and Push Golang Image / build-and-push (push) Failing after 9s
This commit is contained in:
parent
bb6b402c2d
commit
f8c869d60e
25
.gitea/workflows/golang.yml
Normal file
25
.gitea/workflows/golang.yml
Normal file
@ -0,0 +1,25 @@
|
||||
name: Build and Push Golang Image
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'golang/**'
|
||||
- '.gitea/workflows/golang.yml'
|
||||
|
||||
jobs:
|
||||
build-and-push:
|
||||
runs-on: frontstaging
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: https://gitea.pena/PenaDevops/actions.git/checkout@v1
|
||||
|
||||
- name: Login to Container Registry
|
||||
run: |
|
||||
echo "${{ secrets.REGISTRY_PASSWORD }}" | podman login -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin gitea.pena
|
||||
|
||||
- name: Build and Push Image
|
||||
run: |
|
||||
cd golang
|
||||
BRANCH_NAME=${GITEA_REF#refs/heads/}
|
||||
podman build -t gitea.pena/penadevops/container-images/golang:${BRANCH_NAME} .
|
||||
podman push gitea.pena/penadevops/container-images/golang:${BRANCH_NAME}
|
@ -1,3 +1,4 @@
|
||||
FROM penahub.gitlab.yandexcloud.net:5050/devops/dockerhub-backup/golang:main.3862 as golang
|
||||
FROM gitea.pena/penadevops/container-images/golang:main as golang
|
||||
RUN go version
|
||||
ADD golangci-lint .
|
||||
|
||||
|
@ -3,9 +3,13 @@ FROM gitea.pena/penadevops/container-images/docker-compose-bin:main as compose
|
||||
|
||||
FROM gitea.pena/penadevops/container-images/node:main as node
|
||||
ADD pena-ca.crt /usr/local/share/ca-certificates/cacert.crt
|
||||
RUN apk add git && update-ca-certificates
|
||||
RUN apk add catatonit git && update-ca-certificates
|
||||
RUN mkdir -p /run/user/1000/podman
|
||||
RUN chmod -R 777 /run/user/1000/podman
|
||||
RUN mkdir -p /etc/containers && \
|
||||
echo -e '[[registry]]\n location = "gitea.pena"\n insecure = true' >> /etc/containers/registries.conf
|
||||
RUN cat /etc/containers/registries.conf
|
||||
ENV DOCKER_HOST=/var/run/docker.sock
|
||||
|
||||
|
||||
COPY --from=compose /docker-compose /usr/bin/compose
|
||||
|
@ -1,4 +1,5 @@
|
||||
FROM gitea.pena/penadevops/container-images/golint:main as golint
|
||||
RUN go version
|
||||
# only for get golint binary
|
||||
|
||||
FROM gitea.pena/penadevops/container-images/node:main as node
|
||||
|
5
node/Containerfile
Normal file
5
node/Containerfile
Normal file
@ -0,0 +1,5 @@
|
||||
|
||||
FROM gitea.pena/penadevops/container-images/node:main as build
|
||||
COPY ./psstat.sh /usr/local/bin
|
||||
RUN apk add --no-cache procps
|
||||
RUN chmod +x /usr/local/bin/psstat.sh
|
50
node/psstat.sh
Executable file
50
node/psstat.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <command>"
|
||||
echo "Example: $0 'npm run build'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMMAND="$@"
|
||||
LOG_FILE="stats.log"
|
||||
TEMP_PID_FILE="/tmp/monitor_pid_$$"
|
||||
|
||||
# Очищаем старый лог-файл
|
||||
echo "Timestamp,CPU(%),Memory(GB),Command" > "$LOG_FILE"
|
||||
|
||||
# Функция для получения памяти в GB
|
||||
get_memory_gb() {
|
||||
local pid=$1
|
||||
local kb_mem=$(ps -p "$pid" -o rss=)
|
||||
local gb_mem=$(echo "scale=2; $kb_mem / 1024 / 1024" | bc)
|
||||
echo "$gb_mem"
|
||||
}
|
||||
|
||||
# Функция для мониторинга
|
||||
monitor() {
|
||||
local pid=$1
|
||||
echo "Monitoring PID: $pid"
|
||||
while ps -p "$pid" > /dev/null; do
|
||||
local cpu_usage=$(ps -p "$pid" -o %cpu=)
|
||||
local mem_usage=$(get_memory_gb "$pid")
|
||||
echo $mem_usage
|
||||
local cmd=$(ps -p "$pid" -o cmd=)
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S'),$cpu_usage,$mem_usage,$cmd" >> "$LOG_FILE"
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
# Запускаем команду
|
||||
$COMMAND &
|
||||
CMD_PID=$!
|
||||
echo "$CMD_PID" > "$TEMP_PID_FILE"
|
||||
|
||||
# Начинаем мониторинг
|
||||
monitor "$CMD_PID"
|
||||
|
||||
# Удаляем временный файл
|
||||
rm -f "$TEMP_PID_FILE"
|
||||
|
||||
echo "Monitoring complete. Data saved to $LOG_FILE"
|
||||
echo "Format: Timestamp, CPU(%), Memory(GB), Command"
|
Loading…
Reference in New Issue
Block a user