From c3da0f6008e08dd49e312b97d15292c174eb8530 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 22:47:51 +0000 Subject: [PATCH 1/3] Initial plan From 48b37129b6115b5f43dde512b180d49da55c4421 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 22:52:52 +0000 Subject: [PATCH 2/3] =?UTF-8?q?Agregar=20sitio:=20index,=20workflow,=20sou?= =?UTF-8?q?rce=20README,=20assets=20y=20secci=C3=B3n=20introduccion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: isslypa <79699971+isslypa@users.noreply.github.com> --- .github/workflows/build-windows.yml | 46 +++++++++++++++++ assets/images/.gitkeep | 1 + index.md | 19 +++++-- source/ControlDomotico/README.md | 80 +++++++++++++++++++++++++++++ 4 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/build-windows.yml create mode 100644 assets/images/.gitkeep create mode 100644 source/ControlDomotico/README.md diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 0000000..64523e9 --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,46 @@ +name: Build WinForms Project (Windows) + +on: + push: + branches: + - main + paths: + - 'source/ControlDomotico/**' + pull_request: + branches: + - main + paths: + - 'source/ControlDomotico/**' + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' + + - name: Restore dependencies + run: dotnet restore source/ControlDomotico/ControlDomotico.sln + + - name: Build project + run: dotnet build source/ControlDomotico/ControlDomotico.sln --configuration Release --no-restore + + - name: Publish project + run: dotnet publish source/ControlDomotico/ControlDomotico.sln --configuration Release --output ./publish --no-build + + - name: Create ZIP artifact + run: Compress-Archive -Path ./publish/* -DestinationPath ControlDomotico-Release.zip + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ControlDomotico-Windows-Release + path: ControlDomotico-Release.zip + retention-days: 30 diff --git a/assets/images/.gitkeep b/assets/images/.gitkeep new file mode 100644 index 0000000..de70c35 --- /dev/null +++ b/assets/images/.gitkeep @@ -0,0 +1 @@ +# This file ensures the assets/images directory is tracked by Git diff --git a/index.md b/index.md index ef7793e..d93207a 100644 --- a/index.md +++ b/index.md @@ -1,13 +1,26 @@ # Universidad Santo Tomás — Programación 2 -Bienvenido al sitio de la asignatura "Programación 2" de la Universidad Santo Tomás. Aquí podrás encontrar el README del proyecto, los informes y otros materiales entregables. +Bienvenido al sitio de la asignatura "Programación 2" de la Universidad Santo Tomás. Aquí podrás encontrar el código fuente del proyecto, los informes y otros materiales entregables. --- ## Navegación -- [README del proyecto principal](README.md) +- [Código fuente](source/ControlDomotico/) — Proyecto WinForms de Control Domótico - [Informes de la asignatura](informes/) +- [Introducción](informes/introduccion/) — Demo y ejemplos de entregas + +--- + +## Sobre el proyecto + +Este repositorio incluye: + +1. **Código fuente**: El proyecto WinForms se encuentra en `source/ControlDomotico/`. Cada commit a la rama principal activa la compilación automática mediante GitHub Actions. + +2. **Compilación automática**: El workflow `.github/workflows/build-windows.yml` compila el proyecto en Windows y genera un archivo ZIP con el ejecutable como artefacto descargable. + +3. **Informes y entregas**: Los informes de la asignatura se organizan en la carpeta `informes/`, con plantillas y ejemplos. --- @@ -19,4 +32,4 @@ Bienvenido al sitio de la asignatura "Programación 2" de la Universidad Santo T --- -Si quieres que organice otra sección (tareas, proyectos, ejercicios), dime y la creo. +Para más información sobre la estructura del proyecto, consulta el [README del proyecto](source/ControlDomotico/README.md). diff --git a/source/ControlDomotico/README.md b/source/ControlDomotico/README.md new file mode 100644 index 0000000..f7ccfc2 --- /dev/null +++ b/source/ControlDomotico/README.md @@ -0,0 +1,80 @@ +# Control Domótico — Proyecto WinForms + +Este directorio contiene el proyecto WinForms de Control Domótico desarrollado para la asignatura Programación 2. + +--- + +## Estructura sugerida del proyecto + +``` +source/ControlDomotico/ +├── ControlDomotico.sln # Solución de Visual Studio +├── ControlDomotico/ # Proyecto principal +│ ├── ControlDomotico.csproj # Archivo del proyecto +│ ├── Form1.cs # Formulario principal (código) +│ ├── Form1.Designer.cs # Formulario principal (diseñador) +│ ├── Form1.resx # Recursos del formulario +│ ├── Program.cs # Punto de entrada de la aplicación +│ └── ... # Otros archivos del proyecto +└── README.md # Este archivo +``` + +--- + +## Cómo agregar el proyecto + +1. **Si ya tienes un proyecto WinForms creado:** + - Copia todos los archivos del proyecto (`.sln`, carpeta del proyecto con `.csproj`, `.cs`, etc.) a esta carpeta `source/ControlDomotico/`. + - Asegúrate de que el archivo `.sln` esté en la raíz de esta carpeta. + +2. **Si aún no has creado el proyecto:** + - Desde la terminal, navega a esta carpeta: + ```bash + cd source/ControlDomotico + ``` + - Crea un nuevo proyecto WinForms: + ```bash + dotnet new winforms -n ControlDomotico -f net8.0 + ``` + - Crea la solución: + ```bash + dotnet new sln -n ControlDomotico + dotnet sln add ControlDomotico/ControlDomotico.csproj + ``` + +--- + +## Compilación automática + +Una vez que agregues los archivos del proyecto a esta carpeta, el workflow de GitHub Actions (`.github/workflows/build-windows.yml`) compilará automáticamente el proyecto cada vez que hagas un commit a la rama `main`. + +El workflow genera un archivo ZIP con el ejecutable compilado que puedes descargar desde la sección "Actions" del repositorio en GitHub. + +--- + +## Compilación local + +Para compilar el proyecto localmente: + +```bash +# Restaurar dependencias +dotnet restore ControlDomotico.sln + +# Compilar el proyecto +dotnet build ControlDomotico.sln --configuration Release + +# Ejecutar el proyecto +dotnet run --project ControlDomotico/ControlDomotico.csproj +``` + +--- + +## Notas + +- El proyecto debe estar configurado para .NET 8.0 o compatible. +- Asegúrate de que todos los archivos necesarios estén incluidos en el repositorio (excepto `bin/`, `obj/` que deben estar en `.gitignore`). +- Si tienes recursos externos (imágenes, íconos), colócalos en la carpeta del proyecto o en `assets/images/` del repositorio. + +--- + +Para más información sobre el sitio completo, consulta el [índice principal](../../index.md). From efffe66480df3942908d8d21acebf1ed6fc29849 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Oct 2025 22:56:44 +0000 Subject: [PATCH 3/3] Add explicit permissions to workflow for security best practices Co-authored-by: isslypa <79699971+isslypa@users.noreply.github.com> --- .github/workflows/build-windows.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 64523e9..5706b49 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -17,6 +17,9 @@ jobs: build: runs-on: windows-latest + permissions: + contents: read + steps: - name: Checkout repository uses: actions/checkout@v4