diff --git a/.gitea/workflows/cleanup-tests-branches.yaml b/.gitea/workflows/cleanup-tests-branches.yaml new file mode 100644 index 0000000..988573c --- /dev/null +++ b/.gitea/workflows/cleanup-tests-branches.yaml @@ -0,0 +1,35 @@ +name: Cleanup old test branches + +on: + schedule: + - cron: "0 12 * * *" + workflow_dispatch: + +jobs: + cleanup_branch: + runs-on: windows + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Delete test branches older than 7 days + shell: powershell + run: | + # Obtener la fecha límite (7 días antes) + $limitDate = (Get-Date).AddDays(-7) + + # Obtener todas las ramas remotas test/* + $branches = git branch -r | Where-Object { $_ -match 'origin/test/' } + + foreach ($branch in $branches) { + $branchName = $branch.Trim() -replace '^origin/', '' + # Obtener fecha de creación de la rama (aproximación por el primer commit) + $firstCommitDate = git log $branchName --reverse --format="%ci" | Select-Object -First 1 + $branchDate = Get-Date $firstCommitDate + + if ($branchDate -lt $limitDate) { + Write-Host "Eliminando rama $branchName creada el $branchDate" + git push origin --delete $branchName + } + } diff --git a/.gitea/workflows/construct-test.yaml b/.gitea/workflows/construct-test.yaml new file mode 100644 index 0000000..665cab9 --- /dev/null +++ b/.gitea/workflows/construct-test.yaml @@ -0,0 +1,74 @@ +name: Create Test Construct +run-name: Creating test construct + +on: + workflow_dispatch: + inputs: + branch: + description: "Branch to build" + required: true + default: "dev" + schedule: + - cron: "0 12 * * *" + +jobs: + create_test_branch_and_build: + runs-on: windows + + steps: + - name: Checkout dev branch + uses: actions/checkout@v4 + with: + ref: dev + + - name: Create test branch with date + id: create_branch + shell: powershell + run: | + $date = Get-Date -Format "yyyyMMdd" + $branchName = "test/$date" + git checkout -b $branchName + git push origin $branchName + Write-Output "::set-output name=branch::$branchName" + + deploy_docs: + needs: create_test_branch_and_build + runs-on: windows + steps: + - name: Checkout test branch + uses: actions/checkout@v4 + with: + ref: ${{ steps.create_branch.outputs.branch }} + + - name: Deploy documentation + uses: ./.gitea/workflows/deploy-docs.yaml + with: + branch: ${{ steps.create_branch.outputs.branch }} + + deploy_back: + needs: create_test_branch_and_build + runs-on: windows + steps: + - name: Checkout test branch + uses: actions/checkout@v4 + with: + ref: ${{ steps.create_branch.outputs.branch }} + + - name: Deploy .net project + uses: ./.gitea/workflows/deploy-back.yaml + with: + branch: ${{ steps.create_branch.outputs.branch }} + + deploy_front: + needs: create_test_branch_and_build + runs-on: windows + steps: + - name: Checkout test branch + uses: actions/checkout@v4 + with: + ref: ${{ steps.create_branch.outputs.branch }} + + - name: Deploy front project + uses: ./.gitea/workflows/deploy-front.yaml + with: + branch: ${{ steps.create_branch.outputs.branch }} diff --git a/.gitea/workflows/deploy-back.yaml b/.gitea/workflows/deploy-back.yaml new file mode 100644 index 0000000..94d9a3a --- /dev/null +++ b/.gitea/workflows/deploy-back.yaml @@ -0,0 +1,49 @@ +name: Create Test Construct +run-name: Creating test construct + +on: + pull_request: + types: [closed] + branches: [dev, "test/**"] + paths: ["back/**"] + workflow_dispatch: + inputs: + branch: + description: "Branch to deploy" + required: true + default: "dev" + workflow_call: + +jobs: + build_and_deploy: + runs-on: windows + + steps: + - name: Checkout branch + uses: actions/checkout@v4 + + # build .net project + - name: Build .NET Project + run: | + dotnet restore + dotnet build + + # deploy .net to iis site with path = "D:\iis\es\mcvingenieros\mmorales.photo\back" + - name: Deploy .net project to iis + shell: powershell + run: | + # deploy to iis site back.mmorales.photo that has path = D:\iis\es\mcvingenieros\mmorales.photo\back\ + $sourcePath = "D:\iis\es\mcvingenieros\mmorales.photo\back\bin\Release\net9.0\publish" + $destinationPath = "D:\iis\es\mcvingenieros\mmorales.photo\back\" + + # Stop IIS site + Stop-WebAppPool -Name "mmorales.photo.back" + + # Remove old files + Remove-Item -Path $destinationPath\* -Recurse -Force + + # Copy new files + Copy-Item -Path $sourcePath\* -Destination $destinationPath -Recurse + + # Start IIS site + Start-WebAppPool -Name "mmorales.photo.back" diff --git a/.gitea/workflows/deploy-docs.yaml b/.gitea/workflows/deploy-docs.yaml index 5dbfd2a..77a3cd5 100644 --- a/.gitea/workflows/deploy-docs.yaml +++ b/.gitea/workflows/deploy-docs.yaml @@ -4,10 +4,10 @@ run-name: Deploying ${{ gitea.repository }} docs locally on: pull_request: types: [closed] - branches: [main] + branches: [master] paths: ["docs/**", "mkdocs.yml", ".gitea/workflows/deploy-docs.yaml"] push: - branches: [main] + branches: [master] paths: ["docs/**", "mkdocs.yml", ".gitea/workflows/deploy-docs.yaml"] workflow_dispatch: inputs: @@ -15,6 +15,7 @@ on: description: "Branch to deploy" required: true default: "master" + workflow_call: jobs: deploy-docs: diff --git a/.gitea/workflows/deploy-front.yaml b/.gitea/workflows/deploy-front.yaml new file mode 100644 index 0000000..30237ec --- /dev/null +++ b/.gitea/workflows/deploy-front.yaml @@ -0,0 +1,48 @@ +name: deploy front +run-name: Deploy Frontend + +on: + pull_request: + types: [closed] + branches: [dev, "test/**"] + paths: ["front/**"] + workflow_dispatch: + inputs: + branch: + description: "Branch to deploy" + required: true + default: "dev" + workflow_call: + +jobs: + build_and_deploy: + runs-on: windows + + steps: + - name: Checkout branch + uses: actions/checkout@v4 + + # build angular + - name: Build Angular + run: | + npm install + npm run build + + - name: Deploy to IIS + shell: powershell + run: | + # deploy to iis site front.mmorales.photo that has path = D:\iis\es\mcvingenieros\mmorales.photo\front\ + $sourcePath = "D:\iis\es\mcvingenieros\mmorales.photo\front\dist" + $destinationPath = "D:\iis\es\mcvingenieros\mmorales.photo\front\" + + # Stop IIS site + Stop-WebAppPool -Name "mmorales.photo.front" + + # Remove old files + Remove-Item -Path $destinationPath\* -Recurse -Force + + # Copy new files + Copy-Item -Path $sourcePath\* -Destination $destinationPath -Recurse + + # Start IIS site + Start-WebAppPool -Name "mmorales.photo.front" diff --git a/.gitea/workflows/merge-dev.yaml b/.gitea/workflows/merge-dev.yaml index fdfcb9b..2d3e4b3 100644 --- a/.gitea/workflows/merge-dev.yaml +++ b/.gitea/workflows/merge-dev.yaml @@ -19,7 +19,15 @@ jobs: runs-on: windows # Ejecutar directamente en el host Windows steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Configure git user + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + shell: powershell - name: Merge changes from dev run: |