From aa1781bdfd74eb84339e50fe1ebe1b689484e3a2 Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro <71648276+ricarneiro@users.noreply.github.com> Date: Mon, 5 May 2025 20:39:47 -0300 Subject: [PATCH 1/4] feat; pipeline --- YTExtractor/.gitea/workflow/main.yml | 99 ++++++++++++++++++++++++++++ YTExtractor/Dockerfile | 2 +- YTExtractor/YTExtractor.csproj | 6 +- 3 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 YTExtractor/.gitea/workflow/main.yml diff --git a/YTExtractor/.gitea/workflow/main.yml b/YTExtractor/.gitea/workflow/main.yml new file mode 100644 index 0000000..b7d1384 --- /dev/null +++ b/YTExtractor/.gitea/workflow/main.yml @@ -0,0 +1,99 @@ +name: CI/CD Pipeline para YTExtractor + +on: + push: + branches: [ main, 'release/*' ] + pull_request: + branches: [ main, 'release/*' ] + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v3 + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet build --no-restore + + - name: Test + run: dotnet test --no-build --verbosity normal + + - name: Build Docker image + uses: docker/build-push-action@v4 + with: + context: . + push: false + load: true + tags: ytextractor:${{ github.sha }} + platforms: linux/amd64,linux/arm64 + + - name: Save Docker image + run: docker save ytextractor:${{ github.sha }} > ytextractor-image.tar + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: docker-image + path: ytextractor-image.tar + + deploy-localACDC: + needs: build + runs-on: ubuntu-22.04 + if: github.ref == 'refs/heads/main' + + steps: + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: docker-image + + - name: Deploy to localACDC + run: | + echo "Implantando no servidor localACDC" + scp ytextractor-image.tar user@localACDC:/tmp/ + ssh user@localACDC "docker load < /tmp/ytextractor-image.tar && \ + docker stop ytextractor || true && \ + docker rm ytextractor || true && \ + docker run -d --name ytextractor -p 80:80 ytextractor:${{ github.sha }}" + + deploy-pi2Zero: + needs: build + runs-on: ubuntu-22.04 + if: startsWith(github.ref, 'refs/heads/release/') + + steps: + - name: Download artifact + uses: actions/download-artifact@v3 + with: + name: docker-image + + - name: Deploy to pi2Zero (Orange Pi Zero) + run: | + echo "Implantando no Orange Pi Zero (recursos limitados)" + # Transfere a imagem para o servidor + scp ytextractor-image.tar user@pi2Zero:/tmp/ + + # Comandos específicos para o Orange Pi Zero (otimizados para baixa memória) + ssh user@pi2Zero " + # Limpar recursos não utilizados + docker system prune -f + + # Parar e remover contêiner existente + docker stop ytextractor || true + docker rm ytextractor || true + + # Carregar a nova imagem + docker load < /tmp/ytextractor-image.tar + + # Iniciar o serviço com limites de memória + docker run -d --name ytextractor -p 80:80 --memory=300m --memory-swap=600m ytextractor:${{ github.sha }} + " diff --git a/YTExtractor/Dockerfile b/YTExtractor/Dockerfile index d98e9c5..e7c97b7 100644 --- a/YTExtractor/Dockerfile +++ b/YTExtractor/Dockerfile @@ -16,4 +16,4 @@ RUN apt-get update && \ which yt-dlp || (echo "yt-dlp not found" && exit 1) EXPOSE 80 -ENTRYPOINT ["dotnet", "YTExtractor.dll"] \ No newline at end of file +ENTRYPOINT ["dotnet", "YTExtractor.dll"] diff --git a/YTExtractor/YTExtractor.csproj b/YTExtractor/YTExtractor.csproj index 81e1ae6..91b10e8 100644 --- a/YTExtractor/YTExtractor.csproj +++ b/YTExtractor/YTExtractor.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -33,4 +33,8 @@ + + + + -- 2.45.2 From 61f7cebe2f17cace5fbedd215e2058837c945400 Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro <71648276+ricarneiro@users.noreply.github.com> Date: Mon, 5 May 2025 20:47:06 -0300 Subject: [PATCH 2/4] fix: pipeline na raiz --- {YTExtractor/.gitea => .gitea}/workflow/main.yml | 0 YTExtractor.sln | 5 +++++ 2 files changed, 5 insertions(+) rename {YTExtractor/.gitea => .gitea}/workflow/main.yml (100%) diff --git a/YTExtractor/.gitea/workflow/main.yml b/.gitea/workflow/main.yml similarity index 100% rename from YTExtractor/.gitea/workflow/main.yml rename to .gitea/workflow/main.yml diff --git a/YTExtractor.sln b/YTExtractor.sln index b74a10f..7796a67 100644 --- a/YTExtractor.sln +++ b/YTExtractor.sln @@ -5,6 +5,11 @@ VisualStudioVersion = 17.11.35327.3 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YTExtractor", "YTExtractor\YTExtractor.csproj", "{7DA7D783-153F-42EF-87E4-239DEC80F91A}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pipeline", "pipeline", "{5F17A7E6-48F5-4970-B8F6-310BBF9A3C50}" + ProjectSection(SolutionItems) = preProject + .gitea\workflow\main.yml = .gitea\workflow\main.yml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU -- 2.45.2 From f8d1e165001433c55f6bfe3fad7130bd976f09be Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro <71648276+ricarneiro@users.noreply.github.com> Date: Mon, 5 May 2025 20:54:26 -0300 Subject: [PATCH 3/4] fix: run pipeline --- YTExtractor/YtDlpInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/YTExtractor/YtDlpInfo.cs b/YTExtractor/YtDlpInfo.cs index 1d880ae..3f220df 100644 --- a/YTExtractor/YtDlpInfo.cs +++ b/YTExtractor/YtDlpInfo.cs @@ -3,4 +3,4 @@ namespace YTExtractor { public record YtDlpInfo(string Title, string ThumbnailUrl); -} \ No newline at end of file +} -- 2.45.2 From 0652bff092a569d70e724133e3f5d138a8b84b9f Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro <71648276+ricarneiro@users.noreply.github.com> Date: Mon, 5 May 2025 20:56:26 -0300 Subject: [PATCH 4/4] fix: rename pipelne file com yaml --- .gitea/workflow/{main.yml => main.yaml} | 0 YTExtractor.sln | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename .gitea/workflow/{main.yml => main.yaml} (100%) diff --git a/.gitea/workflow/main.yml b/.gitea/workflow/main.yaml similarity index 100% rename from .gitea/workflow/main.yml rename to .gitea/workflow/main.yaml diff --git a/YTExtractor.sln b/YTExtractor.sln index 7796a67..fc40016 100644 --- a/YTExtractor.sln +++ b/YTExtractor.sln @@ -7,7 +7,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "YTExtractor", "YTExtractor\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pipeline", "pipeline", "{5F17A7E6-48F5-4970-B8F6-310BBF9A3C50}" ProjectSection(SolutionItems) = preProject - .gitea\workflow\main.yml = .gitea\workflow\main.yml + .gitea\workflow\main.yaml = .gitea\workflow\main.yaml EndProjectSection EndProject Global -- 2.45.2