build arm64 #11

Merged
ricardo merged 1 commits from release/V1.0.0 into main 2025-05-27 13:20:17 +00:00

View File

@ -29,18 +29,18 @@ jobs:
- name: Publish application - name: Publish application
run: dotnet publish --configuration Release --output ./publish run: dotnet publish --configuration Release --output ./publish
- name: Build Docker image for ARM64 # - name: Build Docker image for ARM64
run: | # run: |
# Criar builder se não existir # # Criar builder se não existir
docker buildx create --name arm-builder --use --platform linux/arm64 || docker buildx use arm-builder # docker buildx create --name arm-builder --use --platform linux/arm64 || docker buildx use arm-builder
# Build específico para ARM64 # # Build específico para ARM64
docker buildx build \ # docker buildx build \
--platform linux/arm64 \ # --platform linux/arm64 \
--tag registry.redecarneir.us/ytextractor:latest \ # --tag registry.redecarneir.us/ytextractor:latest \
--tag registry.redecarneir.us/ytextractor:${{ github.sha }} \ # --tag registry.redecarneir.us/ytextractor:${{ github.sha }} \
-f YTExtractor/Dockerfile \ # -f YTExtractor/Dockerfile \
--push . # --push .
# - name: Build Docker image 1 # - name: Build Docker image 1
# run: | # run: |
@ -48,24 +48,55 @@ jobs:
# docker tag ytextractor:${{ github.sha }} registry.redecarneir.us/ytextractor:latest # docker tag ytextractor:${{ github.sha }} registry.redecarneir.us/ytextractor:latest
# docker tag ytextractor:${{ github.sha }} registry.redecarneir.us/ytextractor:${{ github.sha }} # docker tag ytextractor:${{ github.sha }} registry.redecarneir.us/ytextractor:${{ github.sha }}
- name: Push to registry # - name: Push to registry
run: | # run: |
COMMIT_SHA=$(git rev-parse --short HEAD) # COMMIT_SHA=$(git rev-parse --short HEAD)
docker push registry.redecarneir.us/ytextractor:latest # docker push registry.redecarneir.us/ytextractor:latest
docker push registry.redecarneir.us/ytextractor:${{ github.sha }} # docker push registry.redecarneir.us/ytextractor:${{ github.sha }}
- name: Deploy to remote VPS # - name: Deploy to remote VPS
run: | # run: |
ssh -o StrictHostKeyChecking=no ubuntu@137.131.63.61 << 'EOF' # ssh -o StrictHostKeyChecking=no ubuntu@137.131.63.61 << 'EOF'
# Pull da nova imagem # # Pull da nova imagem
docker pull registry.redecarneir.us/ytextractor:latest # docker pull registry.redecarneir.us/ytextractor:latest
# Parar container atual se existir # # Parar container atual se existir
# docker stop ytextractor-api || true
# docker rm ytextractor-api || true
# # Rodar novo container em produção
# # Porta 80 interna (do container) mapeada para 5000 externa
# docker run -d \
# --name ytextractor-api \
# --restart unless-stopped \
# -p 5000:80 \
# -e ASPNETCORE_ENVIRONMENT=Production \
# -v /tmp/ytextractor:/app/temp \
# registry.redecarneir.us/ytextractor:latest
# # Verificar se está rodando
# sleep 5
# docker ps | grep ytextractor-api
# # Limpeza de imagens antigas (opcional)
# docker image prune -f
# EOF
- name: Deploy and build on VPS
run: |
# Enviar código para VPS
rsync -avz --delete \
--exclude '.git' \
--exclude 'bin' \
--exclude 'obj' \
./ ubuntu@137.131.63.61:~/ytextractor/
# Build no VPS (que já é ARM64)
ssh ubuntu@137.131.63.61 << 'EOF'
cd ~/ytextractor
docker build -t registry.redecarneir.us/ytextractor:latest -f YTExtractor/Dockerfile .
docker stop ytextractor-api || true docker stop ytextractor-api || true
docker rm ytextractor-api || true docker rm ytextractor-api || true
# Rodar novo container em produção
# Porta 80 interna (do container) mapeada para 5000 externa
docker run -d \ docker run -d \
--name ytextractor-api \ --name ytextractor-api \
--restart unless-stopped \ --restart unless-stopped \
@ -73,13 +104,6 @@ jobs:
-e ASPNETCORE_ENVIRONMENT=Production \ -e ASPNETCORE_ENVIRONMENT=Production \
-v /tmp/ytextractor:/app/temp \ -v /tmp/ytextractor:/app/temp \
registry.redecarneir.us/ytextractor:latest registry.redecarneir.us/ytextractor:latest
# Verificar se está rodando
sleep 5
docker ps | grep ytextractor-api
# Limpeza de imagens antigas (opcional)
docker image prune -f
EOF EOF
- name: Verify deployment - name: Verify deployment