-
Notifications
You must be signed in to change notification settings - Fork 0
87 lines (71 loc) · 2.84 KB
/
prod.yml
File metadata and controls
87 lines (71 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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 ${{ needs.build.outputs.APPLICATION_NAME }} ${{ needs.build.outputs.DOCKER_PATH }} \
--title="ows-server|map-server" \
--commit=${{ needs.build.outputs.LAST_COMMIT_HASH }} \
--repo=${{ github.repository }}
- 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 }}"