Init
ci / test (push) Successful in 1m15s
ci / docker (push) Successful in 1m8s

This commit is contained in:
Denozordec
2026-03-29 22:51:02 +07:00
commit 91f289c647
20 changed files with 2184 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
name: ci
on:
push:
branches: [main, master]
tags: ["v*"]
pull_request:
env:
GO_VERSION: "1.22"
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
- name: Test
run: go mod tidy && go test ./...
docker:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build image
run: docker build -t telemt-api:ci .
- name: Push to registry
if: github.event_name == 'push'
env:
REGISTRY_IMAGE: ${{ secrets.REGISTRY_IMAGE }}
REGISTRY_URL: ${{ secrets.REGISTRY_URL }}
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
set -e
if [ -z "$REGISTRY_IMAGE" ] || [ -z "$REGISTRY_URL" ] || [ -z "$REGISTRY_USER" ] || [ -z "$REGISTRY_PASSWORD" ]; then
echo "Registry secrets not set (REGISTRY_IMAGE, REGISTRY_URL, REGISTRY_USER, REGISTRY_PASSWORD) — push skipped."
exit 0
fi
echo "$REGISTRY_PASSWORD" | docker login "$REGISTRY_URL" -u "$REGISTRY_USER" --password-stdin
docker tag telemt-api:ci "${REGISTRY_IMAGE}:sha-${GITHUB_SHA}"
docker push "${REGISTRY_IMAGE}:sha-${GITHUB_SHA}"
if [ "${GITHUB_REF}" = "refs/heads/main" ] || [ "${GITHUB_REF}" = "refs/heads/master" ]; then
docker tag telemt-api:ci "${REGISTRY_IMAGE}:latest"
docker push "${REGISTRY_IMAGE}:latest"
fi
if echo "${GITHUB_REF}" | grep -q '^refs/tags/'; then
TAG="${GITHUB_REF#refs/tags/}"
docker tag telemt-api:ci "${REGISTRY_IMAGE}:${TAG}"
docker push "${REGISTRY_IMAGE}:${TAG}"
fi