Skip to content

ows

ows #3

Workflow file for this run

name: Build and Deploy in Server OWS
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
outputs:
APPLICATION_NAME: ${{ steps.create_env.outputs.APPLICATION_NAME }}
DOCKER_PATH: ${{ steps.create_env.outputs.DOCKER_PATH }}
LAST_COMMIT_HASH: ${{ steps.create_env.outputs.LAST_COMMIT_HASH }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Define environment variables
id: create_env
run: |
# Função para definir variáveis no GITHUB_ENV e GITHUB_OUTPUT
set_var() {
echo "$1=$2" >> $GITHUB_ENV
echo "$1=$2" >> $GITHUB_OUTPUT
}
# Extrai o nome do repositório (sem o owner)
REPO_NAME="${{ github.event.repository.name }}"
# Define as variáveis
set_var "DOCKER_PATH" "prod"
set_var "APPLICATION_NAME" "$REPO_NAME"
set_var "LAST_COMMIT_HASH" "$(git log --pretty=format:%h -n 1)"
# Log para debug
echo "Repository: $REPO_NAME"
echo "Docker Path: prod"
echo "Commit Hash: $(git log --pretty=format:%h -n 1)"
- name: Create version.json
run: |
echo "{\"commitId\":\"$LAST_COMMIT_HASH\",\"repository\":\"$APPLICATION_NAME\",\"dockerPath\":\"$DOCKER_PATH\"}" > version.json
cat version.json
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
username: lapig
password: ${{ secrets.DOCKERHUB_PASS }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: docker/${{ env.DOCKER_PATH }}/Dockerfile
push: true
tags: |
lapig/${{ env.APPLICATION_NAME }}:${{ env.DOCKER_PATH }}_${{ env.LAST_COMMIT_HASH }}
lapig/${{ env.APPLICATION_NAME }}:${{ env.DOCKER_PATH }}_latest
cache-from: type=registry,ref=lapig/${{ env.APPLICATION_NAME }}:${{ env.DOCKER_PATH }}_latest
cache-to: type=inline
no-cache: false
deploy:
needs: build
runs-on: vm1
steps:
- name: Restart Application
run: |
zelador process {{ github.repository }} ${{ needs.build.outputs.DOCKER_PATH }}
- name: Verify deployment
run: |
echo "Deployment completed successfully"
echo "Application: ${{ needs.build.outputs.APPLICATION_NAME }}"
echo "Version: ${{ needs.build.outputs.DOCKER_PATH }}_${{ needs.build.outputs.LAST_COMMIT_HASH }}"