-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #15 from Wiran-Larbi/dev
Dev to main prod
- Loading branch information
Showing
397 changed files
with
34,800 additions
and
2,847 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,204 @@ | ||
name: Continuous Integration for API Suivie Physique | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- dev | ||
pull_request: | ||
branches: | ||
- main | ||
- dev | ||
workflow_dispatch: | ||
|
||
jobs: | ||
compile: | ||
name: Compile Suivie Physique API | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup JDK 17 | ||
uses: actions/setup-java@v4.2.1 | ||
with: | ||
distribution: 'corretto' | ||
java-version: 17 | ||
|
||
- name: Cache Maven packages | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.m2 | ||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | ||
restore-keys: ${{ runner.os }}-m2 | ||
|
||
- name: Compile API | ||
run: | | ||
cd backend | ||
mvn -B clean compile | ||
test: | ||
name: Unit Test Suivie Physique API | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup JDK 17 | ||
uses: actions/setup-java@v4.2.1 | ||
|
||
with: | ||
distribution: 'corretto' | ||
java-version: 17 | ||
|
||
- name: Cache Maven packages | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.m2 | ||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | ||
restore-keys: ${{ runner.os }}-m2 | ||
|
||
- name: Run Unit Test API | ||
run: | | ||
cd backend | ||
mvn clean test | ||
coverage: | ||
name: Code Coverage Suivie Physique API | ||
runs-on: ubuntu-latest | ||
env: | ||
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: DeepSource Test Coverage | ||
uses: DeepSourceCorp/test-coverage-action@v1.1.2 | ||
with: | ||
dsn: DEEPSOURCE_DSN | ||
|
||
- name: Install DeepSource CLI | ||
run: | | ||
curl https://deepsource.io/cli | sh | ||
- name: Generate coverage report | ||
run: | | ||
touch ./coverage.out | ||
./bin/deepsource report --analyzer test-coverage --key java --value-file ./coverage.out | ||
- name: Upload coverage report as artifact | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: coverage-report | ||
path: coverage.out | ||
|
||
- name: Download coverage report | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: coverage-report | ||
path: . | ||
|
||
build: | ||
name: Build Suivie Physique API | ||
runs-on: ubuntu-latest | ||
needs: [compile, test, coverage] | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup JDK 17 | ||
uses: actions/setup-java@v4.2.1 | ||
with: | ||
distribution: 'corretto' | ||
java-version: 17 | ||
|
||
- name: Cache Maven packages | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.m2 | ||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | ||
restore-keys: ${{ runner.os }}-m2 | ||
|
||
- name: Build API | ||
run: | | ||
cd backend | ||
mvn -B clean package -DskipTests | ||
build-push-image: | ||
name: Build Docker Image for Suivie Physique API | ||
runs-on: ubuntu-latest | ||
needs: [build] | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup JDK 17 | ||
uses: actions/setup-java@v4.2.1 | ||
with: | ||
distribution: 'corretto' | ||
java-version: 17 | ||
|
||
- name: Cache Maven packages | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.m2 | ||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | ||
restore-keys: ${{ runner.os }}-m2 | ||
|
||
- name: Extract API version | ||
id: extract_version | ||
run: | | ||
cd backend | ||
echo "API_VERSION=$(./mvnw -q -Dexec.executable='echo' -Dexec.args='${project.version}' --non-recursive exec:exec)" >> $GITHUB_OUTPUT | ||
- name: Setup Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Login to Dockerhub | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKER_HUB_USERNAME }} | ||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | ||
|
||
- name: Build Docker Image & Push to DockerHub | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: backend | ||
file: docker/backend/Dockerfile | ||
push: true | ||
platforms: linux/amd64,linux/arm64 | ||
tags: dotcipher1/sp-api:latest | ||
|
||
# deploy: | ||
# name: Deploy Suivie Physique API | ||
# runs-on: self-hosted | ||
# needs: [build-push-image] | ||
# steps: | ||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
# | ||
# - name: Setup JDK 17 | ||
# uses: actions/setup-jdk@v4 | ||
# with: | ||
# distribution: 'corretto' | ||
# java-version: 17 | ||
# | ||
# - name: Create deployment folder | ||
# run: ssh ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }} "mkdir -p ci-cd" | ||
# | ||
# - name: Copy deployment files | ||
# run: scp docker-compose.yml ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }}:ci-cd/docker-compose.yml | ||
# | ||
# - name: Set ENV & Deploy API | ||
# run: | | ||
# ssh ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_IP }} <<EOF | ||
# cd ci-cd | ||
# docker-compose -f docker-compose.yml pull -q | ||
# docker-compose -f docker-compose.yml up -d | ||
# EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: Continuous Integration for UI Suivie Physique | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- dev | ||
pull_request: | ||
branches: | ||
- main | ||
- dev | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build-image: | ||
name: Build Docker Image for UI Suivie Physique | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Extract project version | ||
id: extract_version | ||
run: | | ||
cd frontend | ||
echo "UI_VERSION=$(jq -r '.version' package.json )" >> $GITHUB_OUTPUT | ||
- name: Setup Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Login to Dockerhub | ||
uses: docker/login-action@v3 | ||
with: | ||
username: ${{ secrets.DOCKER_HUB_USERNAME }} | ||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | ||
|
||
- name: Setup Node.js environment | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '16' | ||
|
||
- name: Cache Node Modules | ||
uses: actions/cache@v2 | ||
env: | ||
cache-name: cache-node-modules | ||
with: | ||
path: frontend/node_modules | ||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-build-${{ env.cache-name }}-${{ runner.os }}-build-${{ runner.os }} | ||
- name: Build Docker Image & Push to DockerHub | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: frontend | ||
file: docker/frontend/Dockerfile | ||
push: true | ||
platforms: linux/amd64,linux/arm64 | ||
tags: dotcipher1/sp-ui:${{ steps.extract_version.outputs.UI_VERSION }}, dotcipher1/sp-ui:latest |
Oops, something went wrong.