feat: Add CI/CD pipeline, versioning and changelog
ALVA Deploy / deploy (push) Has been skipped
ALVA Deploy / build (push) Failing after 11s
Guidad Felsökning / test-och-bygg (push) Has been cancelled
Guidad Felsökning / tjanster (push) Has been cancelled
Guidad Felsökning / terraform (push) Has been cancelled
Guidad Felsökning / leverantorskedja (push) Has been cancelled
Guidad Felsökning / aterstallning (push) Has been cancelled
Guidad Felsökning / publicera (push) Has been cancelled
Guidad Felsökning / driftsatt (push) Has been cancelled
ALVA Deploy / deploy (push) Has been skipped
ALVA Deploy / build (push) Failing after 11s
Guidad Felsökning / test-och-bygg (push) Has been cancelled
Guidad Felsökning / tjanster (push) Has been cancelled
Guidad Felsökning / terraform (push) Has been cancelled
Guidad Felsökning / leverantorskedja (push) Has been cancelled
Guidad Felsökning / aterstallning (push) Has been cancelled
Guidad Felsökning / publicera (push) Has been cancelled
Guidad Felsökning / driftsatt (push) Has been cancelled
- Gitea Actions workflow for build and deploy - VERSION file (1.0.0) - CHANGELOG.md - Automatic ECR push on commit - Automatic EKS deployment on main branch
This commit is contained in:
@@ -0,0 +1,76 @@
|
|||||||
|
name: ALVA Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main, master]
|
||||||
|
tags: ['v*']
|
||||||
|
pull_request:
|
||||||
|
branches: [main, master]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Configure AWS credentials
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: eu-north-1
|
||||||
|
|
||||||
|
- name: Login to Amazon ECR
|
||||||
|
id: login-ecr
|
||||||
|
uses: aws-actions/amazon-ecr-login@v2
|
||||||
|
|
||||||
|
- name: Build and push webb image
|
||||||
|
working-directory: felsokning/app
|
||||||
|
run: |
|
||||||
|
# Kopiera gemensam-moduler
|
||||||
|
mkdir -p services
|
||||||
|
cp -r ../services/gemensam services/
|
||||||
|
|
||||||
|
# Bygg image
|
||||||
|
docker build \
|
||||||
|
--build-arg VITE_SUPABASE_URL="${{ secrets.VITE_SUPABASE_URL }}" \
|
||||||
|
--build-arg VITE_SUPABASE_PUBLISHABLE_KEY="${{ secrets.VITE_SUPABASE_PUBLISHABLE_KEY }}" \
|
||||||
|
--build-arg VITE_AI_ORKESTER_URL="https://ai.alva.landvex.com" \
|
||||||
|
--build-arg VITE_PLATTFORM_URL="https://api.alva.landvex.com" \
|
||||||
|
-t ${{ steps.login-ecr.outputs.registry }}/alva-webb:${{ github.sha }} \
|
||||||
|
-t ${{ steps.login-ecr.outputs.registry }}/alva-webb:latest \
|
||||||
|
.
|
||||||
|
|
||||||
|
docker push ${{ steps.login-ecr.outputs.registry }}/alva-webb:${{ github.sha }}
|
||||||
|
docker push ${{ steps.login-ecr.outputs.registry }}/alva-webb:latest
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
||||||
|
steps:
|
||||||
|
- name: Configure AWS credentials
|
||||||
|
uses: aws-actions/configure-aws-credentials@v4
|
||||||
|
with:
|
||||||
|
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||||
|
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||||
|
aws-region: eu-north-1
|
||||||
|
|
||||||
|
- name: Update kubeconfig
|
||||||
|
run: aws eks update-kubeconfig --name landvex-prod --region eu-north-1
|
||||||
|
|
||||||
|
- name: Deploy to EKS
|
||||||
|
run: |
|
||||||
|
kubectl set image deployment/alva-webb \
|
||||||
|
webb=${{ steps.login-ecr.outputs.registry }}/alva-webb:${{ github.sha }} \
|
||||||
|
-n alva
|
||||||
|
|
||||||
|
kubectl rollout status deployment/alva-webb -n alva --timeout=300s
|
||||||
|
|
||||||
|
- name: Verify deployment
|
||||||
|
run: |
|
||||||
|
kubectl get pods -n alva
|
||||||
|
curl -s https://alva.landvex.com/ | grep -E "<title>" | head -1
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [1.0.0] - 2026-08-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Initial production deployment
|
||||||
|
- CloudFront CDN with SSL
|
||||||
|
- EKS deployment with 2 replicas
|
||||||
|
- RDS PostgreSQL database
|
||||||
|
- Git-based CI/CD pipeline
|
||||||
|
|
||||||
|
### Infrastructure
|
||||||
|
- Kubernetes namespace: `alva`
|
||||||
|
- Node group: `alva-arm64` (2× t4g.medium)
|
||||||
|
- CloudFront distribution
|
||||||
|
- ACM SSL certificate
|
||||||
|
- Route53 DNS
|
||||||
|
|
||||||
|
### Services
|
||||||
|
- `alva-webb` - Webbklient (React/Vite SPA)
|
||||||
|
- `alva-plattform` - Backend API
|
||||||
|
- `alva-ai-orkester` - AI-tjänst
|
||||||
Reference in New Issue
Block a user