nyanimedb/.forgejo/workflows/build-and-deploy.yml
2025-10-08 00:48:30 +03:00

57 lines
1.3 KiB
YAML

name: Build and Deploy Go App
on:
push:
branches:
- master
pull_request:
jobs:
build:
runs-on: docker
container:
image: golang:1.25.0
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build Go app
run: |
go mod tidy
go build -o nyanimedb .
- name: Build Docker image
run: docker build -t nyanimedb:latest .
- name: Save Docker image artifact
run: docker save nyanimedb:latest -o nyanimedb.tar
- name: Upload image artifact
uses: actions/upload-artifact@v4
with:
name: docker-image
path: nyanimedb.tar
deploy:
runs-on: docker
needs: build
if: ${{ github.event.inputs.deploy == 'true' }} # manual deploy trigger
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download image
uses: actions/download-artifact@v4
with:
name: docker-image
path: .
- name: Load Docker image
run: docker load -i nyanimedb.tar
- name: Deploy container locally
run: |
echo "Deploying nyanimedb locally..."
docker stop nyanimedb || true
docker rm nyanimedb || true
docker run -d --name nyanimedb -p 8080:8080 nyanimedb:latest