diff --git a/.github/workflows/master_cefire-webapp0001.yml b/.github/workflows/master_cefire-webapp0001.yml new file mode 100644 index 000000000..a4e44807f --- /dev/null +++ b/.github/workflows/master_cefire-webapp0001.yml @@ -0,0 +1,70 @@ +# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: Build and deploy PHP app to Azure Web App - cefire-webapp0001 + +on: + push: + branches: + - master + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read #This is required for actions/checkout + + steps: + - uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' + + - name: Check if composer.json exists + id: check_files + uses: andstor/file-existence-action@v1 + with: + files: 'composer.json' + + - name: Run composer install if composer.json exists + if: steps.check_files.outputs.files_exists == 'true' + run: composer validate --no-check-publish && composer install --prefer-dist --no-progress + + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v4 + with: + name: php-app + path: . + + deploy: + runs-on: ubuntu-latest + needs: build + permissions: + id-token: write #This is required for requesting the JWT + contents: read #This is required for actions/checkout + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v4 + with: + name: php-app + + - name: Login to Azure + uses: azure/login@v2 + with: + client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_A3827D44356A4A7FA0ADB157B3B9C544 }} + tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_E4626EAF47E74041ACEC4737F46488CB }} + subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_A9D64345FFE446A5AB3F1A897C9FF8B2 }} + + - name: 'Deploy to Azure Web App' + uses: azure/webapps-deploy@v3 + id: deploy-to-webapp + with: + app-name: 'cefire-webapp0001' + slot-name: 'Production' + package: . + \ No newline at end of file diff --git a/blob/master/storage.php b/blob/master/storage.php new file mode 100644 index 000000000..58d23151d --- /dev/null +++ b/blob/master/storage.php @@ -0,0 +1,79 @@ +deleteBlob($containerName, $blobToDelete); + echo "
Archivo $blobToDelete eliminado correctamente.
"; + } catch (ServiceException $e) { + echo "Error al eliminar: " . $e->getMessage() . "
"; + } +} + +// Subida de archivo ZIP +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['zipfile'])) { + $uploadedFile = $_FILES['zipfile']; + + if ($uploadedFile['type'] !== 'application/zip') { + echo "Solo se permiten archivos ZIP.
"; + } else { + $blobName = basename($uploadedFile['name']); + $content = fopen($uploadedFile['tmp_name'], "r"); + + try { + $blobClient->createBlockBlob($containerName, $blobName, $content); + echo "Archivo $blobName subido correctamente.
"; + } catch (ServiceException $e) { + echo "Error al subir: " . $e->getMessage() . "
"; + } + } +} + +// Listar archivos +try { + $listOptions = new ListBlobsOptions(); + $blobs = $blobClient->listBlobs($containerName, $listOptions); +} catch (ServiceException $e) { + die("Error al listar archivos: " . $e->getMessage()); +} +?> + + + + +Archivo eliminado: {$_POST['delete_blob']}
"; + } catch (Exception $e) { + echo "Error al eliminar: {$e->getMessage()}
"; + } +} + +// Subir archivo nuevo +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['zipfile'])) { + $file = $_FILES['zipfile']; + if ($file['error'] === UPLOAD_ERR_OK && mime_content_type($file['tmp_name']) === 'application/zip') { + $blobName = basename($file['name']); + try { + $content = fopen($file['tmp_name'], 'r'); + $blobClient->createBlockBlob($containerName, $blobName, $content); + echo "Archivo subido: {$blobName}
"; + } catch (Exception $e) { + echo "Error al subir: {$e->getMessage()}
"; + } + } else { + echo "Solo se permiten archivos .zip válidos.
"; + } +} + +// Listar blobs +try { + $blobList = $blobClient->listBlobs($containerName, new ListBlobsOptions()); + $blobs = $blobList->getBlobs(); +} catch (Exception $e) { + die("Error al listar blobs: " . $e->getMessage()); +} +?> + + + + + +