Skip to content

Add customer ZIP packaging scripts for each Function language - #12

Open
Hou (SciencePotato) wants to merge 2 commits into
mainfrom
feature/epp-function-zip-packaging
Open

Hou (SciencePotato) wants to merge 2 commits into
mainfrom
feature/epp-function-zip-packaging

Conversation

@SciencePotato

Copy link
Copy Markdown
Collaborator

Summary

  • Add three standalone PowerShell 7 scripts at the repository root: package-javascript.ps1, package-dotnet.ps1, and package-python.ps1.
  • JavaScript stages application source and installs production dependencies from its lockfile, without copying the working node_modules directory.
  • .NET packages fresh Release publish output, including hidden .azurefunctions files, and rejects local configuration, credential, and test files in publish output.
  • Python creates a source ZIP for Azure remote build on Linux. It deliberately excludes local virtual environments and dependencies and is not a direct run-from-package artifact.
  • All scripts place host.json at the ZIP root, use temporary staging, refuse existing output paths, support -OutputPath, and clean up staging.
  • Document customer commands, prerequisites, output names, deployment boundaries, and Python remote-build requirements. ZIPs go to ignored artifacts/ and are not committed.

Validation

  • Ran all three scripts successfully from outside the repository root.
  • Inspected all archives for required files, correct root layout, hidden .NET extensions, and absence of local settings, credential files, and first-party tests.
  • Loaded the extracted JavaScript engine and all providers using the packaged dependencies.
  • Compiled extracted Python source; verified the extracted .NET SendOtp HTTP-trigger metadata.
  • Re-ran each script against its existing output and confirmed rejection with unchanged SHA256.
  • Editor diagnostics and git diff --check passed.

Scope and limitations

  • Independent branch based on main; no Telesign/Soprano feature history or runtime changes included.
  • No Azure deployment, configuration changes, or live provider requests performed.
  • Python remote build and cloud execution have not been exercised. Node dependency lifecycle scripts are intentionally disabled for the current sample; native dependency additions require target-OS build review.

@SciencePotato

Copy link
Copy Markdown
Collaborator Author

Direct ZIP downloads and CI automation added

Customer ZIPs are published now: https://github.com/Azure-Samples/ExternalPhoneProvider-AzureFunction-Sample/releases/tag/epp-packages-preview-20260914

Assets: epp-javascript.zip, epp-dotnet.zip, epp-python-source.zip, and SHA256SUMS.txt. Preview assets were built from commit 4f32003 and their uploaded digests match local checksums. Python remains a source ZIP requiring Azure remote build on Linux. This main-based preview excludes the separate provider feature branches.

The Function ZIPs workflow passed on Linux: https://github.com/Azure-Samples/ExternalPhoneProvider-AzureFunction-Sample/actions/runs/34902091675

It runs all language tests, builds all three archives, verifies contents, generates checksums, and uploads PR artifacts. A separate contents-write job publishes versioned GitHub Releases only after successful main builds; PR builds cannot publish. This release automation becomes active on main after this PR is merged. No Azure deployment or live provider calls performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant