69 lines
2.5 KiB
YAML
69 lines
2.5 KiB
YAML
name: Build Push and Deploy
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
docker-image:
|
|
runs-on: ubuntu
|
|
permissions:
|
|
contents: read
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
github-server-url: ${{ github.server_url }}
|
|
|
|
- name: Login to Gitea Container Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ vars.REGISTRY_HOST }}
|
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
|
|
- name: Build and Push Image
|
|
env:
|
|
IMAGE_NAME: ${{ vars.REGISTRY_HOST }}/${{ github.repository }}
|
|
IMAGE_TAG: ${{ github.ref_name }}
|
|
run: |
|
|
docker build \
|
|
-f ./Dockerfile \
|
|
-t "${IMAGE_NAME}:${IMAGE_TAG}" \
|
|
-t "${IMAGE_NAME}:latest" \
|
|
--build-arg NEXT_PUBLIC_BACKEND_URL="${{ vars.NEXT_PUBLIC_BACKEND_URL }}" \
|
|
--build-arg NEXT_PUBLIC_COPILOT_URL="${{ vars.NEXT_PUBLIC_COPILOT_URL }}" \
|
|
--build-arg NEXT_PUBLIC_AUDIO_SERVICE_URL="${{ vars.NEXT_PUBLIC_AUDIO_SERVICE_URL }}" \
|
|
--build-arg NEXT_PUBLIC_MAP_URL="${{ vars.NEXT_PUBLIC_MAP_URL }}" \
|
|
--build-arg NEXT_PUBLIC_MAP_WORKSPACE="${{ vars.NEXT_PUBLIC_MAP_WORKSPACE }}" \
|
|
--build-arg NEXT_PUBLIC_MAP_EXTENT="${{ vars.NEXT_PUBLIC_MAP_EXTENT }}" \
|
|
--build-arg NEXT_PUBLIC_NETWORK_NAME="${{ vars.NEXT_PUBLIC_NETWORK_NAME }}" \
|
|
--build-arg NEXT_PUBLIC_MAPBOX_TOKEN="${{ secrets.NEXT_PUBLIC_MAPBOX_TOKEN }}" \
|
|
--build-arg NEXT_PUBLIC_TIANDITU_TOKEN="${{ secrets.NEXT_PUBLIC_TIANDITU_TOKEN }}" \
|
|
.
|
|
docker push "${IMAGE_NAME}:${IMAGE_TAG}"
|
|
docker push "${IMAGE_NAME}:latest"
|
|
|
|
- name: Notify Deploy Server
|
|
if: success()
|
|
env:
|
|
IMAGE: ${{ vars.REGISTRY_HOST }}/${{ github.repository }}:${{ github.ref_name }}
|
|
run: |
|
|
curl -fsSL -X POST "${{ vars.DEPLOY_WEBHOOK_URL }}" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer ${{ secrets.DEPLOY_WEBHOOK_TOKEN }}" \
|
|
-d "{\"image\":\"${IMAGE}\",\"tag\":\"${{ github.ref_name }}\",\"repo\":\"${{ github.repository }}\"}"
|
|
|
|
deploy-fallback-log:
|
|
runs-on: ubuntu
|
|
needs: docker-image
|
|
if: failure()
|
|
steps:
|
|
- name: Deployment not triggered
|
|
run: echo "Image build/push failed, deployment webhook was not called."
|