Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
e598a1d
Update .gitignore for tree-sitter files
andyleejordan Dec 10, 2025
bde1fc7
Add bicep.proto file
andyleejordan Dec 10, 2025
92b6e01
Basic CLI plumbing for Bicep gRPC server
andyleejordan Dec 10, 2025
1868e58
Add Rust tonic and prost packages for gRPC
andyleejordan Dec 10, 2025
4b79f4f
Implement stub Bicep gRPC server
andyleejordan Dec 10, 2025
8039b6c
Refactor to stand-alone dscbicep binary
andyleejordan Dec 11, 2025
6d74da5
Always attach debugger
andyleejordan Dec 16, 2025
3793117
Start to implement create_or_update gRPC method
andyleejordan Dec 16, 2025
34d5875
Place the dscbicep binary
andyleejordan Dec 16, 2025
8382304
Reuse Tokio runtime in invoke_command
andyleejordan Dec 17, 2025
403c2fa
Add tracing
andyleejordan Dec 17, 2025
169eeb6
Don't build gRPC client
andyleejordan Dec 17, 2025
90b7b1f
Basic implementation of all methods
andyleejordan Dec 17, 2025
b93d598
Check environment for tracing and debug settings
andyleejordan Dec 17, 2025
9900616
Add a default HTTP server for debugging with grpcurl
andyleejordan Dec 17, 2025
c693ecc
Add tonic-reflection package
andyleejordan Dec 17, 2025
841cd13
Add tonic reflection service
andyleejordan Dec 17, 2025
093a165
Refactor use std::
andyleejordan Dec 17, 2025
621a34d
Implement fuller return responses
andyleejordan Dec 17, 2025
df36a0a
Fix bugs
andyleejordan Dec 18, 2025
1f37f5d
Unwrap DSC result structs to property bags
andyleejordan Dec 18, 2025
4266b52
Simplify and remove direct serde dependency
andyleejordan Dec 18, 2025
177d0b0
Clean up error handling
andyleejordan Dec 18, 2025
fd310e6
Slight socket code clean up
andyleejordan Dec 18, 2025
c7c1d06
Hacky support for named pipes
andyleejordan Dec 20, 2025
cd87700
Use tokio correctly by informing it we're about to block
andyleejordan Dec 31, 2025
01629a6
Update to use DiscoveryFilter
andyleejordan Jan 13, 2026
aeed883
Ensure Protobuf is available in build
andyleejordan Jan 13, 2026
d9d2b9e
Use Test-CommandAvailable for protoc and node
andyleejordan Jan 13, 2026
254eed3
Add WinGet links to PATH on Windows
andyleejordan Jan 14, 2026
873c479
Localize strings in dscbicep
andyleejordan Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ jobs:
runs-on: ${{matrix.platform}}
steps:
- uses: actions/checkout@v5
- name: Add WinGet links to PATH
if: matrix.platform == 'windows-latest'
run: |
"$env:LOCALAPPDATA\\Microsoft\\WinGet\\Links" | Out-File -Append -Encoding utf8 -FilePath $env:GITHUB_PATH
Comment on lines +29 to +32
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was necessary for Protobuf because protoc.exe is made available by WinGet in this local app data path, which on GitHub images is not already in the PATH, and that is unlike the rest of our dependencies (Node.js is already installed system-wide and so in the PATH, tree-sitter isn't installed by installs via Cargo, this was our first installation on GitHub Actions using WinGet that doesn't run a system installer).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should have this environment change in the build.helpers.psm1 for protobuf tool install instead of a one-off here

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is specific to GitHub Actions. When you install Protobuf via WinGet on Windows normally, protoc is found in the PATH. It appears that GitHub Actions Windows images don't correctly include the WinGet path.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could check for the GITHUB_ACTIONS environment variable if we want to move this into the install function - that variable is always defined as true when running in GHA and unlikely to be accidentally set for local development.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or it could just be in the GitHub Actions script 😅

- name: Install prerequisites
run: ./build.ps1 -SkipBuild -Clippy -Verbose
- name: Generate documentation
Expand Down Expand Up @@ -129,6 +133,9 @@ jobs:
windows-build:
runs-on: windows-latest
steps:
- name: Add WinGet links to PATH
run: |
"$env:LOCALAPPDATA\\Microsoft\\WinGet\\Links" | Out-File -Append -Encoding utf8 -FilePath $env:GITHUB_PATH
- uses: actions/checkout@v5
- name: Install prerequisites
run: ./build.ps1 -SkipBuild -Clippy -Verbose
Expand Down
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
target
build/
target/
bin/
.DS_Store
*.msix

# Node.js generated files for tree-sitter
build/
node_modules/
# Generated files for tree-sitter
grammars/**/bindings/
grammars/**/src/
grammars/**/parser.*
tree-sitter-ssh-server-config/
tree-sitter-dscexpression/
3 changes: 2 additions & 1 deletion .pipelines/DSC-Official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ extends:
ob_restore_phase: true
- pwsh: |
apt update
apt -y install musl-tools rpm dpkg build-essential
apt -y install musl-tools rpm dpkg build-essential protobuf-compiler
$header = "Bearer $(AzToken)"
$env:CARGO_REGISTRIES_POWERSHELL_TOKEN = $header
$env:CARGO_REGISTRIES_POWERSHELL_CREDENTIAL_PROVIDER = 'cargo:token'
Expand Down Expand Up @@ -381,6 +381,7 @@ extends:
apt -y install rpm
apt -y install dpkg
apt -y install build-essential
apt install -y protobuf-compiler
msrustup default stable-aarch64-unknown-linux-musl
if ((openssl version -d) -match 'OPENSSLDIR: "(?<dir>.*?)"') {
$env:OPENSSL_LIB_DIR = $matches['dir']
Expand Down
Loading