Skip to content

Commit

Permalink
Release and debug profiles (#365)
Browse files Browse the repository at this point in the history
Closes #326
  • Loading branch information
andrzejressel authored Aug 26, 2024
1 parent d7f7d6b commit a2ae261
Show file tree
Hide file tree
Showing 15 changed files with 148 additions and 70 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,4 @@ jobs:
git add -A
git commit -m "Release v0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}"
git tag "v0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}"
git push origin "v0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}"
git push origin "v0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}"
32 changes: 25 additions & 7 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,15 @@ jobs:
pulumi_wasm_generator_lib/tests/output/mini-awsnative/
- name: Build
run: just build-wasm-components
run: |
just build-wasm-components
just build-wasm-components-release
for i in target/wasm32-wasip1/debug/*_provider.wasm; do cp "$i" "${i%.*}-debug.wasm"; done
cp target/wasm32-wasip1/debug/pulumi_wasm.wasm target/wasm32-wasip1/debug/pulumi_wasm-debug.wasm
for i in target/wasm32-wasip1/release/*_provider.wasm; do cp "$i" "${i%.*}-release.wasm"; done
cp target/wasm32-wasip1/release/pulumi_wasm.wasm target/wasm32-wasip1/release/pulumi_wasm-release.wasm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Expand All @@ -131,8 +139,8 @@ jobs:
prerelease: true
body: ""
files: |
target/wasm32-wasip1/debug/*_provider.wasm
target/wasm32-wasip1/debug/pulumi_wasm.wasm
target/wasm32-wasip1/release/*-release.wasm
target/wasm32-wasip1/debug/*-debug.wasm
deploy_language_plugin:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -249,12 +257,20 @@ jobs:
- name: Add target
run: rustup target add ${{ matrix.rust-target }}
- name: Build runner
- name: Build runner (Debug)
run: cargo build -p pulumi_wasm_runner --target ${{ matrix.rust-target }}
- name: Build runner (Release)
run: cargo build -p pulumi_wasm_runner --release --target ${{ matrix.rust-target }}

- run: mv ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner.exe ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}
- run: |
cp ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner.exe ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}-debug
cp ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner.exe ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}
cp ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner.exe ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}-release
if: matrix.os == 'windows-latest'
- run: mv ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}
- run: |
cp ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner ./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}-debug
cp ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}
cp ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner ./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}-release
if: matrix.os != 'windows-latest'
- name: Release
Expand All @@ -266,4 +282,6 @@ jobs:
prerelease: true
body: ""
files: |
./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}
./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}-debug
./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}
./target/${{ matrix.rust-target }}/release/pulumi_wasm_runner-${{ matrix.rust-target }}-release
31 changes: 21 additions & 10 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,24 @@ build-wasm-components:
just build-wasm-providers
cargo build -p pulumi_wasm_runner --timings

build-wasm-components-release:
cargo component build -p pulumi_wasm --timings --release
just build-wasm-providers-release

# DO NOT EDIT - BUILD-WASM-COMPONENTS - START
build-wasm-providers:
cargo component build \
-p pulumi_wasm_docker_provider \
-p pulumi_wasm_random_provider \
-p pulumi_wasm_cloudflare_provider \
--timings

build-wasm-providers-release:
cargo component build \
-p pulumi_wasm_docker_provider \
-p pulumi_wasm_random_provider \
-p pulumi_wasm_cloudflare_provider \
--timings --release
# DO NOT EDIT - BUILD-WASM-COMPONENTS - END

check:
Expand Down Expand Up @@ -71,16 +82,16 @@ regenerate-providers:
# DO NOT EDIT - REGENERATE-PROVIDERS - END

publish:
cargo publish -p pulumi_wasm_wit --allow-dirty --all-features
cargo publish -p pulumi_wasm_proto --allow-dirty --all-features
cargo publish -p pulumi_wasm_common --allow-dirty --all-features
cargo publish -p pulumi_wasm_rust_macro --allow-dirty --all-features
cargo publish -p pulumi_wasm_rust --allow-dirty --all-features
cargo publish -p pulumi_wasm_generator_lib --allow-dirty --all-features
cargo publish -p pulumi_wasm_generator --allow-dirty --all-features
cargo publish -p pulumi_wasm_core --allow-dirty --all-features
cargo publish -p pulumi_wasm_runner_component_creator --allow-dirty --all-features
cargo publish -p pulumi_wasm_runner --allow-dirty --all-features
cargo publish -p pulumi_wasm_wit --all-features
cargo publish -p pulumi_wasm_proto --all-features
cargo publish -p pulumi_wasm_common --all-features
cargo publish -p pulumi_wasm_rust_macro --all-features
cargo publish -p pulumi_wasm_rust --all-features
cargo publish -p pulumi_wasm_generator_lib --all-features
cargo publish -p pulumi_wasm_generator --all-features
cargo publish -p pulumi_wasm_core --all-features
cargo publish -p pulumi_wasm_runner_component_creator --all-features
cargo publish -p pulumi_wasm_runner --all-features
just publish-providers

# DO NOT EDIT - PUBLISH-PROVIDERS - START
Expand Down
6 changes: 3 additions & 3 deletions providers/pulumi_wasm_provider_cloudflare_rust/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use pulumi_wasm_rust::Output;
use pulumi_wasm_wit::client_bindings::component::pulumi_wasm::output_interface::Output as WitOutput;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;

mod bindings {
wit_bindgen::generate!({
Expand Down
6 changes: 3 additions & 3 deletions providers/pulumi_wasm_provider_docker_rust/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use pulumi_wasm_rust::Output;
use pulumi_wasm_wit::client_bindings::component::pulumi_wasm::output_interface::Output as WitOutput;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;

mod bindings {
wit_bindgen::generate!({
Expand Down
3 changes: 0 additions & 3 deletions providers/pulumi_wasm_provider_random_rust/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
use pulumi_wasm_rust::Output;
use pulumi_wasm_wit::client_bindings::component::pulumi_wasm::output_interface::Output as WitOutput;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;

Expand Down
14 changes: 8 additions & 6 deletions pulumi_wasm_generator_lib/src/output/rust/lib.rs.handlebars
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
use pulumi_wasm_rust::Output;
{{#if package.interfaces}}
{{#if package.contains_resources}}
use pulumi_wasm_wit::client_bindings::component::pulumi_wasm::output_interface::Output as WitOutput;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;
{{/if}}
{{#if package.contains_types}}
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;
{{/if}}

mod bindings {
wit_bindgen::generate!({
// the name of the world in the `*.wit` input file
world: "{{package.name}}-pulumi-client",
{{#if package.interfaces}}
{{#if package.contains_resources}}
with: {
"component:pulumi-wasm/output-interface@{{package.pulumi_wasm_version}}": pulumi_wasm_wit::client_bindings::component::pulumi_wasm::output_interface
}
{{/if}}
});
}

{{#if package.interfaces}}
{{#if package.contains_resources}}
fn into_domain<F: serde::Serialize>(output: WitOutput) -> Output<F> {
unsafe { Output::<F>::new_from_handle(output) }
}
Expand Down
10 changes: 4 additions & 6 deletions pulumi_wasm_generator_lib/src/output/rust/source_code_librs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,17 @@ struct Interface {}
#[derive(Serialize)]
struct Package {
name: String,
interfaces: Vec<Interface>,
contains_resources: bool,
contains_types: bool,
pulumi_wasm_version: String,
}

fn convert_model(package: &crate::model::Package) -> Package {
Package {
name: package.name.clone(),
pulumi_wasm_version: get_main_version().to_string(),
interfaces: package
.resources
.iter()
.map(|(_, _)| Interface {})
.collect(),
contains_types: !package.types.is_empty(),
contains_resources: !package.resources.is_empty(),
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ use pulumi_wasm_rust::Output;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;

mod bindings {
wit_bindgen::generate!({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ use pulumi_wasm_rust::Output;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod types;
pub use types::*;
#[allow(clippy::doc_lazy_continuation, clippy::tabs_in_doc_comments)]
mod resource;
pub use resource::*;

mod bindings {
wit_bindgen::generate!({
Expand Down
10 changes: 9 additions & 1 deletion pulumi_wasm_runner/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ use pulumi_wasm_runner_component_creator::source::{
use std::collections::BTreeMap;
use std::fs;
use std::path::PathBuf;

mod model;
mod pulumi;
mod pulumi_state;
Expand All @@ -36,6 +35,12 @@ enum Command {
providers: Vec<(String, PathBuf)>,
#[arg(long)]
pulumi_wasm: Option<PathBuf>,
#[clap(
long,
action,
help = "When set to true, WASM components with debug symbols will be used. Should be only used for debugging - it will massively increase execution time"
)]
debug: bool,
program: PathBuf,
},
}
Expand Down Expand Up @@ -84,6 +89,7 @@ async fn main() -> Result<(), Error> {
Command::Run {
providers,
pulumi_wasm,
debug,
program,
} => {
use pulumi_wasm_runner_component_creator::source::FileSource;
Expand All @@ -96,6 +102,7 @@ async fn main() -> Result<(), Error> {
)
})
.collect();
log::info!("Debug set to {debug}");
log::info!("Creating final component");
let pulumi_wasm_source: Box<dyn PulumiWasmSource> = match pulumi_wasm {
None => Box::new(GithubPulumiWasmSource {}),
Expand All @@ -108,6 +115,7 @@ async fn main() -> Result<(), Error> {
pulumi_wasm_source.as_ref(),
fs::read(program)
.context(format!("Cannot read program {}", program.to_str().unwrap()))?,
*debug,
)
.await?;
log::info!("Created final component");
Expand Down
8 changes: 6 additions & 2 deletions pulumi_wasm_runner_component_creator/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::source::{DefaultProviderSource, ProviderSource, PulumiWasmSource};
use anyhow::{bail, Context};
use itertools::Itertools;
use log::info;
use regex::Regex;
use std::collections::{BTreeMap, BTreeSet};
use std::hash::Hash;
Expand All @@ -16,6 +17,7 @@ pub async fn create(
default_provider_source: &dyn DefaultProviderSource,
pulumi_wasm: &dyn PulumiWasmSource,
program: Vec<u8>,
debug: bool,
) -> anyhow::Result<Vec<u8>> {
let mut graph = CompositionGraph::new();

Expand Down Expand Up @@ -63,6 +65,8 @@ pub async fn create(

let pulumi_wasm_version = pulumi_wasm_versions.iter().next().unwrap();

info!("Pulumi WASM version: {pulumi_wasm_version}");

// Is not getting invoked, because different version are capture before
// (because of transitive output dependency)
//
Expand Down Expand Up @@ -101,7 +105,7 @@ pub async fn create(
let downloaded = match providers_paths.get(provider_name) {
None => {
default_provider_source
.get_component(provider_name, &provider.version, pulumi_wasm_version)
.get_component(provider_name, &provider.version, pulumi_wasm_version, debug)
.await
}
Some(provider_source) => provider_source.get_component(pulumi_wasm_version).await,
Expand All @@ -111,7 +115,7 @@ pub async fn create(
}

let pulumi_wasm = pulumi_wasm
.get(pulumi_wasm_version)
.get(pulumi_wasm_version, debug)
.await
.context("Cannot obtain pulumi_wasm component WASM")?;

Expand Down
Loading

0 comments on commit a2ae261

Please sign in to comment.