Bump FirebaseAdmin from 3.2.0 to 3.4.0 #259
This file contains hidden or 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
| name: CI/CD | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| jobs: | |
| build: | |
| name: Build & Unit Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install .NET Core | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 9.0.x | |
| - name: Install dependencies | |
| run: dotnet restore src/Backend.sln | |
| - name: Build Api | |
| run: dotnet build src/Backend.sln -c Release | |
| - name: Execute Unit Tests - Core-Test | |
| run: dotnet test src/Core-Test/Core-Test.csproj -v n | |
| - name: Execute Unit Tests - DeviceService-Test | |
| run: dotnet test src/DeviceService-Test/DeviceService-Test.csproj -v n | |
| build_docker_artifacts: | |
| name: Build Docker Artifacts | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Build Docker Images | |
| working-directory: "${{ github.workspace }}/src/" | |
| env: | |
| DOCKER_BUILDKIT: 1 | |
| DOCKER_REGISTRY: ${{ vars.ACR_URL }}/ | |
| run: | | |
| docker compose -f docker-compose.yml build \ | |
| --build-arg ${DOCKER_FILE_ARGS:-""} | |
| - name: Tag Docker Images | |
| run: | | |
| API_IMAGE=${{ vars.ACR_URL }}/backbuddy/api | |
| DEVICE_ORCHESTRATOR_IMAGE=${{ vars.ACR_URL }}/backbuddy/deviceorchestrator | |
| DEVICE_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/deviceservice | |
| USER_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/userservice | |
| NOTIFICATION_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/notificationservice | |
| VERSION=${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| docker tag $API_IMAGE:latest $API_IMAGE:$VERSION | |
| docker tag $DEVICE_ORCHESTRATOR_IMAGE:latest $DEVICE_ORCHESTRATOR_IMAGE:$VERSION | |
| docker tag $DEVICE_SERVICE_IMAGE:latest $DEVICE_SERVICE_IMAGE:$VERSION | |
| docker tag $USER_SERVICE_IMAGE:latest $USER_SERVICE_IMAGE:$VERSION | |
| docker tag $NOTIFICATION_SERVICE_IMAGE:latest $NOTIFICATION_SERVICE_IMAGE:$VERSION | |
| - name: Save Docker Images | |
| run: | | |
| API_IMAGE=${{ vars.ACR_URL }}/backbuddy/api | |
| DEVICE_ORCHESTRATOR_IMAGE=${{ vars.ACR_URL }}/backbuddy/deviceorchestrator | |
| DEVICE_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/deviceservice | |
| USER_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/userservice | |
| NOTIFICATION_SERVICE_IMAGE=${{ vars.ACR_URL }}/backbuddy/notificationservice | |
| docker save -o backbuddy_api.tar $API_IMAGE | |
| docker save -o backbuddy_deviceorchestrator.tar $DEVICE_ORCHESTRATOR_IMAGE | |
| docker save -o backbuddy_deviceservice.tar $DEVICE_SERVICE_IMAGE | |
| docker save -o backbuddy_userservice.tar $USER_SERVICE_IMAGE | |
| docker save -o backbuddy_notificationservice.tar $NOTIFICATION_SERVICE_IMAGE | |
| - name: Upload Api Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: backbuddy_api | |
| path: backbuddy_api.tar | |
| retention-days: 1 | |
| - name: Upload Device Orchestrator Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: backbuddy_deviceorchestrator | |
| path: backbuddy_deviceorchestrator.tar | |
| retention-days: 1 | |
| - name: Upload Device Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: backbuddy_deviceservice | |
| path: backbuddy_deviceservice.tar | |
| retention-days: 1 | |
| - name: Upload User Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: backbuddy_userservice | |
| path: backbuddy_userservice.tar | |
| retention-days: 1 | |
| - name: Upload Notification Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: backbuddy_notificationservice | |
| path: backbuddy_notificationservice.tar | |
| retention-days: 1 | |
| integration: | |
| name: Integration Test | |
| runs-on: ubuntu-latest | |
| needs: [build, build_docker_artifacts] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Download Api Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_api | |
| - name: Download Device Orchestrator Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_deviceorchestrator | |
| - name: Download Device Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_deviceservice | |
| - name: Download User Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_userservice | |
| - name: Download Notification Service Docker Image | |
| if: github.event_name != 'pull_request' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_notificationservice | |
| - name: Load Docker Image | |
| if: github.event_name != 'pull_request' | |
| run: | | |
| docker load -i backbuddy_api.tar | |
| docker load -i backbuddy_deviceorchestrator.tar | |
| docker load -i backbuddy_deviceservice.tar | |
| docker load -i backbuddy_userservice.tar | |
| docker load -i backbuddy_notificationservice.tar | |
| - name: Run Services | |
| uses: hoverkraft-tech/compose-action@v2.0.2 | |
| with: | |
| cwd: "${{ github.workspace }}/src/" | |
| compose-file: "docker-compose.test.yml" | |
| env: | |
| DOCKER_REGISTRY: ${{ vars.ACR_URL }}/ | |
| - name: Install .NET Core | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 9.0.x | |
| - name: Install dependencies | |
| run: dotnet restore src/Backend.sln | |
| - name: Execute Integration Tests | |
| run: dotnet test src/Integration-Test/Integration-Test.csproj -v n | |
| deploy_docker_artifacts: | |
| name: Deploy Docker Artifacts | |
| runs-on: ubuntu-latest | |
| needs: [build_docker_artifacts, integration] | |
| if: github.event_name != 'pull_request' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Login to ACR | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ vars.ACR_URL }} | |
| username: ${{ secrets.ACR_USERNAME }} | |
| password: ${{ secrets.ACR_PASSWORD }} | |
| - name: Download Api Docker Image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_api | |
| - name: Download Device Orchestrator Docker Image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_deviceorchestrator | |
| - name: Download Device Service Docker Image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_deviceservice | |
| - name: Download User Service Docker Image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_userservice | |
| - name: Download Notification Service Docker Image | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: backbuddy_notificationservice | |
| - name: Load Docker Image | |
| run: | | |
| docker load -i backbuddy_api.tar | |
| docker load -i backbuddy_deviceorchestrator.tar | |
| docker load -i backbuddy_deviceservice.tar | |
| docker load -i backbuddy_userservice.tar | |
| docker load -i backbuddy_notificationservice.tar | |
| - name: Push latest Docker Images | |
| working-directory: "${{ github.workspace }}/src/" | |
| env: | |
| DOCKER_BUILDKIT: 1 | |
| DOCKER_REGISTRY: ${{ vars.ACR_URL }}/ | |
| run: | | |
| docker compose -f docker-compose.yml push | |
| - name: Push Docker Images with Version | |
| working-directory: "${{ github.workspace }}/src/" | |
| env: | |
| DOCKER_BUILDKIT: 1 | |
| DOCKER_REGISTRY: ${{ vars.ACR_URL }}/ | |
| TAG: ${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| run: | | |
| docker compose -f docker-compose.yml push | |
| deploy_2container_app: | |
| name: Deploy to Container App | |
| runs-on: ubuntu-latest | |
| needs: [deploy_docker_artifacts] | |
| if: github.event_name != 'pull_request' | |
| steps: | |
| - name: Azure Login | |
| uses: azure/login@v2 | |
| with: | |
| creds: ${{ secrets.AZURE_CREDENTIALS }} | |
| - name: Deploy Api Image to Container App | |
| uses: azure/container-apps-deploy-action@v1 | |
| with: | |
| imageToDeploy: ${{ vars.ACR_URL }}/backbuddy/api:${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| resourceGroup: ${{ vars.RESOURCE_GROUP }} | |
| containerAppName: ${{ vars.CONTAINER_APP_NAME }} | |
| - name: Deploy Device Orchestrator Image to Container App | |
| uses: azure/container-apps-deploy-action@v1 | |
| with: | |
| imageToDeploy: ${{ vars.ACR_URL }}/backbuddy/deviceorchestrator:${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| resourceGroup: ${{ vars.RESOURCE_GROUP }} | |
| containerAppName: ${{ vars.CONTAINER_DEVICE_ORCHESTRATOR_APP_NAME }} | |
| - name: Deploy Device Service Image to Container App | |
| uses: azure/container-apps-deploy-action@v1 | |
| with: | |
| imageToDeploy: ${{ vars.ACR_URL }}/backbuddy/deviceservice:${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| resourceGroup: ${{ vars.RESOURCE_GROUP }} | |
| containerAppName: ${{ vars.CONTAINER_DEVICE_SERVICE_APP_NAME }} | |
| - name: Deploy User Service Image to Container App | |
| uses: azure/container-apps-deploy-action@v1 | |
| with: | |
| imageToDeploy: ${{ vars.ACR_URL }}/backbuddy/userservice:${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| resourceGroup: ${{ vars.RESOURCE_GROUP }} | |
| containerAppName: ${{ vars.CONTAINER_USER_SERVICE_APP_NAME }} | |
| - name: Deploy Notification Service Image to Container App | |
| uses: azure/container-apps-deploy-action@v1 | |
| with: | |
| imageToDeploy: ${{ vars.ACR_URL }}/backbuddy/notificationservice:${{ vars.MAJOR_VERSION }}.${{ vars.MINOR_VERSION }}.${{ github.run_number }} | |
| resourceGroup: ${{ vars.RESOURCE_GROUP }} | |
| containerAppName: ${{ vars.CONTAINER_NOTIFICATION_SERVICE_APP_NAME }} |