Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix SDK build errors, plus add it to the CI #43

Merged
merged 1 commit into from
Oct 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 1 addition & 8 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,7 @@ RUN apt-get install -y python3 && \
apt-get install -y python3-setuptools

# Install .NET
RUN wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
dpkg -i packages-microsoft-prod.deb && \
rm packages-microsoft-prod.deb

RUN apt-get update && \
apt-get install -y apt-transport-https && \
apt-get update && \
apt-get install -y dotnet-sdk-6.0
RUN apt-get install -y dotnet-sdk-6.0
Copy link
Contributor Author

@peterdeme peterdeme Oct 27, 2023

Choose a reason for hiding this comment

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

dotnet is now part of the Ubuntu package manager and the build fails if you don't use that one. 😅

A fatal error occurred. The folder [/usr/share/dotnet/host/fxr] does not exist


# Install Pulumi
RUN curl -fsSL https://get.pulumi.com | sh
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/build-library.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build library

on: { push: { branches-ignore: [future, main] } }

concurrency:
group: build-library-${{ github.ref }}
cancel-in-progress: true

jobs:
build-library:
name: Build library
runs-on: ubuntu-latest
container: golang:1.21-alpine
steps:
- name: Install build dependencies
run: |
apk add --no-cache alpine-sdk git bash npm python3 py3-pip

- name: Install yarn
run: npm install --global yarn

- name: Setup Dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6

- name: Check out repository code
uses: actions/checkout@main
with: { fetch-depth: 0 }

- name: Treat repo as safe
run: git config --global --add safe.directory /__w/pulumi-spacelift/pulumi-spacelift

- name: Remove Pulumi directory
run: rm -rf /github/home/.pulumi

- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1
with:
repo: pulumi/pulumictl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Install pulumi
uses: pulumi/actions@v4

- name: Tag version
run: |
CURRENTTAG=$(git describe --tags --abbrev=0)
git tag $CURRENTTAG${{ github.run_number }}

- name: Print version
run: pulumictl get version

- name: Build SDKs
run: make build_sdks
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Check if sdk is up to date
run: git diff --exit-code ./
2 changes: 1 addition & 1 deletion .github/workflows/build-provider.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ jobs:
- name: Build provider
run: make provider
env:
PROVIDER_OS: ${{ matrix.provider_os }}
PROVIDER_OS: ${{ matrix.provider_os }}
2 changes: 1 addition & 1 deletion .github/workflows/library-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
- name: Setup DotNet
uses: actions/setup-dotnet@v3
with:
dotnet-version: 3.1.301
dotnet-version: 6

- name: Setup DotNet ICU
run: sudo apt-get update && sudo apt-get install -y icu-devtools
Expand Down
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ build_nodejs:: install_plugins tfgen # build the node sdk
cd sdk/nodejs/ && \
yarn install && \
yarn run tsc && \
cp -R scripts/ bin && \
Copy link
Contributor Author

Choose a reason for hiding this comment

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

they have dropped the scripts folder: pulumi/pulumi#13195 (comment)

cp ../../README.md ../../LICENSE package.json yarn.lock ./bin/ && \
sed -i.bak -e "s/\$${VERSION}/$(VERSION)/g" ./bin/package.json

Expand Down
2 changes: 1 addition & 1 deletion sdk/dotnet/AwsIntegration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace Pulumi.Spacelift
/// <summary>
/// `spacelift.AwsIntegration` represents an integration with an AWS account. This integration is account-level and needs to be explicitly attached to individual stacks in order to take effect.
///
/// Note: when assuming credentials for **shared workers**, Spacelift will use `$accountName-$integrationID@$stackID-$suffix` or `$accountName-$integrationID@$moduleID-$suffix` as [external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) and `$runID@$stackID@$accountName` truncated to 64 characters as [session ID](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole),$suffix will be `read` or `write`.
/// Note: when assuming credentials for **shared workers**, Spacelift will use `$accountName@$integrationID@$stackID@$suffix` or `$accountName@$integrationID@$moduleID@$suffix` as [external ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html) and `$runID@$stackID@$accountName` truncated to 64 characters as [session ID](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole),$suffix will be `read` or `write`.
///
/// ## Import
///
Expand Down
1 change: 1 addition & 0 deletions sdk/dotnet/AwsIntegrationAttachment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Pulumi.Spacelift
///
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Spacelift = Pulumi.Spacelift;
///
Expand Down
1 change: 1 addition & 0 deletions sdk/dotnet/AzureIntegration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Pulumi.Spacelift
///
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Spacelift = Pulumi.Spacelift;
///
Expand Down
1 change: 1 addition & 0 deletions sdk/dotnet/AzureIntegrationAttachment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Pulumi.Spacelift
///
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Spacelift = Pulumi.Spacelift;
///
Expand Down
195 changes: 195 additions & 0 deletions sdk/dotnet/Blueprint.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Spacelift
{
[SpaceliftResourceType("spacelift:index/blueprint:Blueprint")]
public partial class Blueprint : global::Pulumi.CustomResource
{
/// <summary>
/// Description of the blueprint
/// </summary>
[Output("description")]
public Output<string?> Description { get; private set; } = null!;

/// <summary>
/// Labels of the blueprint
/// </summary>
[Output("labels")]
public Output<ImmutableArray<string>> Labels { get; private set; } = null!;

/// <summary>
/// Name of the blueprint
/// </summary>
[Output("name")]
public Output<string> Name { get; private set; } = null!;

/// <summary>
/// ID of the space the blueprint is in
/// </summary>
[Output("space")]
public Output<string> Space { get; private set; } = null!;

/// <summary>
/// State of the blueprint. Value can be `DRAFT` or `PUBLISHED`.
/// </summary>
[Output("state")]
public Output<string> State { get; private set; } = null!;

/// <summary>
/// Body of the blueprint. If `state` is set to `PUBLISHED`, this field is required.
/// </summary>
[Output("template")]
public Output<string?> Template { get; private set; } = null!;


/// <summary>
/// Create a Blueprint resource with the given unique name, arguments, and options.
/// </summary>
///
/// <param name="name">The unique name of the resource</param>
/// <param name="args">The arguments used to populate this resource's properties</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public Blueprint(string name, BlueprintArgs args, CustomResourceOptions? options = null)
: base("spacelift:index/blueprint:Blueprint", name, args ?? new BlueprintArgs(), MakeResourceOptions(options, ""))
{
}

private Blueprint(string name, Input<string> id, BlueprintState? state = null, CustomResourceOptions? options = null)
: base("spacelift:index/blueprint:Blueprint", name, state, MakeResourceOptions(options, id))
{
}

private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
{
var defaultOptions = new CustomResourceOptions
{
Version = Utilities.Version,
PluginDownloadURL = "https://downloads.spacelift.io/pulumi-plugins",
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
merged.Id = id ?? merged.Id;
return merged;
}
/// <summary>
/// Get an existing Blueprint resource's state with the given name, ID, and optional extra
/// properties used to qualify the lookup.
/// </summary>
///
/// <param name="name">The unique name of the resulting resource.</param>
/// <param name="id">The unique provider ID of the resource to lookup.</param>
/// <param name="state">Any extra arguments used during the lookup.</param>
/// <param name="options">A bag of options that control this resource's behavior</param>
public static Blueprint Get(string name, Input<string> id, BlueprintState? state = null, CustomResourceOptions? options = null)
{
return new Blueprint(name, id, state, options);
}
}

public sealed class BlueprintArgs : global::Pulumi.ResourceArgs
{
/// <summary>
/// Description of the blueprint
/// </summary>
[Input("description")]
public Input<string>? Description { get; set; }

[Input("labels")]
private InputList<string>? _labels;

/// <summary>
/// Labels of the blueprint
/// </summary>
public InputList<string> Labels
{
get => _labels ?? (_labels = new InputList<string>());
set => _labels = value;
}

/// <summary>
/// Name of the blueprint
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }

/// <summary>
/// ID of the space the blueprint is in
/// </summary>
[Input("space", required: true)]
public Input<string> Space { get; set; } = null!;

/// <summary>
/// State of the blueprint. Value can be `DRAFT` or `PUBLISHED`.
/// </summary>
[Input("state", required: true)]
public Input<string> State { get; set; } = null!;

/// <summary>
/// Body of the blueprint. If `state` is set to `PUBLISHED`, this field is required.
/// </summary>
[Input("template")]
public Input<string>? Template { get; set; }

public BlueprintArgs()
{
}
public static new BlueprintArgs Empty => new BlueprintArgs();
}

public sealed class BlueprintState : global::Pulumi.ResourceArgs
{
/// <summary>
/// Description of the blueprint
/// </summary>
[Input("description")]
public Input<string>? Description { get; set; }

[Input("labels")]
private InputList<string>? _labels;

/// <summary>
/// Labels of the blueprint
/// </summary>
public InputList<string> Labels
{
get => _labels ?? (_labels = new InputList<string>());
set => _labels = value;
}

/// <summary>
/// Name of the blueprint
/// </summary>
[Input("name")]
public Input<string>? Name { get; set; }

/// <summary>
/// ID of the space the blueprint is in
/// </summary>
[Input("space")]
public Input<string>? Space { get; set; }

/// <summary>
/// State of the blueprint. Value can be `DRAFT` or `PUBLISHED`.
/// </summary>
[Input("state")]
public Input<string>? State { get; set; }

/// <summary>
/// Body of the blueprint. If `state` is set to `PUBLISHED`, this field is required.
/// </summary>
[Input("template")]
public Input<string>? Template { get; set; }

public BlueprintState()
{
}
public static new BlueprintState Empty => new BlueprintState();
}
}
2 changes: 1 addition & 1 deletion sdk/dotnet/Config/Config.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace Pulumi.Spacelift
{
public static class Config
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
[global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
"Double underscore prefix used to avoid conflicts with variable names.")]
private sealed class __Value<T>
{
Expand Down
1 change: 1 addition & 0 deletions sdk/dotnet/Context.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Pulumi.Spacelift
///
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Spacelift = Pulumi.Spacelift;
///
Expand Down
1 change: 1 addition & 0 deletions sdk/dotnet/ContextAttachment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ namespace Pulumi.Spacelift
///
/// ```csharp
/// using System.Collections.Generic;
/// using System.Linq;
/// using Pulumi;
/// using Spacelift = Pulumi.Spacelift;
///
Expand Down
Loading
Loading