70 lines
2.0 KiB
YAML
70 lines
2.0 KiB
YAML
name: Build and Deploy Vendaweb React
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build-and-push:
|
|
name: Build Docker Image and Push to Harbor
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
with:
|
|
driver-opts: |
|
|
network=host
|
|
config-inline: |
|
|
[registry."10.1.1.124:8082"]
|
|
http = true
|
|
insecure = true
|
|
|
|
- name: Login to Harbor Registry
|
|
run: echo "${{ secrets.HARBOR_PASSWORD }}" | docker login 10.1.1.124:8082 -u ${{ secrets.HARBOR_USERNAME }} --password-stdin
|
|
|
|
- name: Extract Branch Name
|
|
id: extract_branch
|
|
run: |
|
|
BRANCH=${GITHUB_REF#refs/heads/}
|
|
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
|
|
|
|
- name: Build and Push Docker Image
|
|
run: |
|
|
REPO="10.1.1.124:8082/library/vendaweb-react"
|
|
VERSION="v${{ gitea.run_number }}"
|
|
BRANCH="${{ steps.extract_branch.outputs.branch }}"
|
|
COMMIT_SHA="${{ gitea.sha }}"
|
|
SHORT_SHA="${COMMIT_SHA:0:7}"
|
|
|
|
docker buildx build \
|
|
--cache-from=$REPO:latest \
|
|
--build-arg BUILDKIT_INLINE_CACHE=1 \
|
|
--tag $REPO:$VERSION \
|
|
--tag $REPO:latest \
|
|
--tag $REPO:$BRANCH \
|
|
--tag $REPO:$SHORT_SHA \
|
|
--platform linux/amd64 \
|
|
--push \
|
|
.
|
|
|
|
- name: Notificar Portainer via Webhook
|
|
if: success()
|
|
run: |
|
|
echo "Notificando Portainer para atualizar o container..."
|
|
curl -f -X POST "${{ secrets.PORTAINER_WEBHOOK_FRONT }}" \
|
|
--max-time 30 \
|
|
--retry 3 \
|
|
--retry-delay 2 \
|
|
-v
|
|
echo "Webhook do Portainer executado com sucesso!"
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
run: |
|
|
docker logout 10.1.1.124:8082
|
|
docker system prune -f --volumes || true |