-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
32 changed files
with
4,213 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
ARG UBUNTU_VERSION=latest | ||
FROM ubuntu:${UBUNTU_VERSION} | ||
|
||
# Update apt-get and install various needed utilities | ||
RUN apt-get update && \ | ||
apt-get install -y curl && \ | ||
apt-get install -y wget && \ | ||
apt-get install -y xz-utils && \ | ||
apt-get install -y make && \ | ||
apt-get install -y gcc && \ | ||
apt-get install -y git | ||
|
||
# Install bridged provider prerequisites | ||
# See README.md | ||
|
||
# Install go | ||
ARG GO_VERSION=1.22.5 | ||
RUN rm -rf /usr/local/go && \ | ||
wget -O- https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | \ | ||
tar -C /usr/local -xzf - | ||
|
||
ENV GOPATH=/root/go | ||
ENV PATH=$PATH:/usr/local/go/bin | ||
|
||
# Install go linter | ||
RUN mkdir -p $GOPATH/bin && \ | ||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.46.2 | ||
|
||
ENV PATH=$PATH:$GOPATH/bin | ||
|
||
# Install pulumictl | ||
ARG PULUMICTL_VERSION=v0.0.46 | ||
RUN rm -rf /usr/local/bin/pulumictl && \ | ||
wget -O- https://github.com/pulumi/pulumictl/releases/download/${PULUMICTL_VERSION}/pulumictl-${PULUMICTL_VERSION}-linux-amd64.tar.gz | \ | ||
tar -C /usr/local/bin -xzf - | ||
|
||
# Install nodejs | ||
ARG NODEJS_VERSION=v16.16.0 | ||
ARG NODEJS_PKG=node-${NODEJS_VERSION}-linux-x64 | ||
ARG NODEJS_TARBALL=${NODEJS_PKG}.tar.xz | ||
RUN rm -rf /usr/local/node && \ | ||
wget -O ${NODEJS_TARBALL} https://nodejs.org/dist/${NODEJS_VERSION}/${NODEJS_TARBALL} && \ | ||
tar -C /usr/local -xf ${NODEJS_TARBALL} && \ | ||
mv /usr/local/${NODEJS_PKG} /usr/local/node | ||
|
||
ENV PATH=$PATH:/usr/local/node/bin | ||
|
||
# Install yarn | ||
RUN npm install --global yarn | ||
|
||
# Install python and related items | ||
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 | ||
|
||
# Install Pulumi | ||
RUN curl -fsSL https://get.pulumi.com | sh | ||
ENV PATH=$PATH:/root/.pulumi/bin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: | ||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.202.3/containers/hugo | ||
{ | ||
"name": "TFProvider", | ||
"build": { | ||
"dockerfile": "Dockerfile" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
|
||
name: build | ||
|
||
on: | ||
pull_request: | ||
paths-ignore: | ||
- docs | ||
- .devcontainer | ||
- examples | ||
|
||
jobs: | ||
build_sdk: | ||
name: build_sdk | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
dotnetversion: | ||
- 6.0.x | ||
goversion: | ||
- 1.22.x | ||
nodeversion: | ||
- 16.x | ||
pythonversion: | ||
- "3.9" | ||
javaversion: | ||
- "11" | ||
language: | ||
- nodejs | ||
- python | ||
- dotnet | ||
- go | ||
# - java | ||
|
||
steps: | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
|
||
- name: Unshallow clone for tags | ||
run: git fetch --prune --unshallow --tags | ||
- name: Install Go | ||
uses: actions/setup-go@v3 | ||
with: | ||
go-version: ${{matrix.goversion}} | ||
|
||
- name: Install pulumictl | ||
uses: jaxxstorm/[email protected] | ||
with: | ||
repo: pulumi/pulumictl | ||
|
||
- name: Install pulumi | ||
uses: pulumi/actions@v4 | ||
|
||
- if: ${{ matrix.language == 'nodejs'}} | ||
name: Setup Node | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: ${{matrix.nodeversion}} | ||
registry-url: https://registry.npmjs.org | ||
|
||
- if: ${{ matrix.language == 'dotnet'}} | ||
name: Setup DotNet | ||
uses: actions/setup-dotnet@v1 | ||
with: | ||
dotnet-version: ${{matrix.dotnetversion}} | ||
|
||
- if: ${{ matrix.language == 'python'}} | ||
name: Setup Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{matrix.pythonversion}} | ||
|
||
- if: ${{ matrix.language == 'java'}} | ||
name: Setup Java | ||
uses: actions/setup-java@v3 | ||
with: | ||
cache: gradle | ||
distribution: temurin | ||
java-version: ${{matrix.javaversion}} | ||
|
||
- name: Build SDK | ||
run: make build_${{ matrix.language }} | ||
|
||
- name: Check worktree clean | ||
run: | | ||
git update-index -q --refresh | ||
if ! git diff-files --quiet; then | ||
>&2 echo "error: working tree is not clean, aborting!" | ||
git status | ||
git diff | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,178 @@ | ||
|
||
name: release | ||
|
||
on: | ||
push: | ||
tags: | ||
- v*.*.* | ||
paths-ignore: | ||
- docs | ||
- .devcontainer | ||
- examples | ||
|
||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# IF YOU NEED TO PUBLISH A NPM PACKAGE THEN ENSURE A NPM_TOKEN SECRET IS SET | ||
# AND PUBLISH_NPM: TRUE. IF YOU WANT TO PUBLISH TO A PRIVATE NPM REGISTRY | ||
# THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED | ||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
PUBLISH_NPM: true | ||
NPM_REGISTRY_URL: https://registry.npmjs.org | ||
# IF YOU NEED TO PUBLISH A NUGET PACKAGE THEN ENSURE AN NUGET_PUBLISH_KEY | ||
# SECRET IS SET AND PUBLISH_NUGET: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE | ||
# NPM REGISTRY THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED | ||
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} | ||
NUGET_FEED_URL: https://api.nuget.org/v3/index.json | ||
PUBLISH_NUGET: true | ||
# IF YOU NEED TO PUBLISH A PYPI PACKAGE THEN ENSURE AN PYPI_PASSWORD | ||
# SECRET IS SET AND PUBLISH_PYPI: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE | ||
# PYPI REGISTRY THEN ENSURE THE PYPI_REPOSITORY_URL IS SET. IF YOU ARE USING AN API_TOKEN THEN | ||
# YOU DO NOT NEED TO CHANGE THE PYPI_USERNAME (__token__) , IF YOU ARE USING PASSWORD AUTHENTICATION THEN YOU WILL | ||
# NEED TO CHANGE TO USE THE CORRECT PASSWORD | ||
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | ||
PYPI_USERNAME: "__token__" | ||
PYPI_REPOSITORY_URL: "" | ||
PUBLISH_PYPI: true | ||
|
||
jobs: | ||
publish_binary: | ||
name: publish | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Checkout Repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Unshallow clone for tags | ||
run: git fetch --prune --unshallow --tags | ||
|
||
- name: Install Go | ||
uses: actions/setup-go@v3 | ||
with: | ||
go-version: ${{matrix.goversion}} | ||
|
||
- name: Install pulumictl | ||
uses: jaxxstorm/[email protected] | ||
with: | ||
repo: pulumi/pulumictl | ||
|
||
- name: Set PreRelease Version | ||
run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" >> $GITHUB_ENV | ||
- name: Run GoReleaser | ||
uses: goreleaser/goreleaser-action@v2 | ||
with: | ||
args: -p 3 release --rm-dist | ||
version: latest | ||
|
||
strategy: | ||
fail-fast: true | ||
matrix: | ||
goversion: | ||
- 1.22.x | ||
|
||
publish_sdk: | ||
name: Publish SDKs | ||
runs-on: ubuntu-latest | ||
needs: publish_binary | ||
steps: | ||
- name: Checkout Repo | ||
uses: actions/checkout@v2 | ||
|
||
- name: Unshallow clone for tags | ||
run: git fetch --prune --unshallow --tags | ||
|
||
- name: Install Go | ||
uses: actions/setup-go@v3 | ||
with: | ||
go-version: ${{ matrix.goversion }} | ||
|
||
- name: Install pulumictl | ||
uses: jaxxstorm/[email protected] | ||
with: | ||
repo: pulumi/pulumictl | ||
|
||
- name: Install pulumi | ||
uses: pulumi/actions@v4 | ||
|
||
- if: ${{ matrix.language == 'nodejs'}} | ||
name: Setup Node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: ${{matrix.nodeversion}} | ||
registry-url: ${{env.NPM_REGISTRY_URL}} | ||
|
||
- if: ${{ matrix.language == 'dotnet'}} | ||
name: Setup DotNet | ||
uses: actions/setup-dotnet@v1 | ||
with: | ||
dotnet-version: ${{matrix.dotnetversion}} | ||
|
||
- if: ${{ matrix.language == 'java'}} | ||
name: Setup Java | ||
uses: actions/setup-java@v3 | ||
with: | ||
cache: gradle | ||
distribution: temurin | ||
java-version: ${{matrix.javaversion}} | ||
|
||
- if: ${{ matrix.language == 'python'}} | ||
name: Setup Python | ||
uses: actions/setup-python@v1 | ||
with: | ||
python-version: ${{matrix.pythonversion}} | ||
|
||
- name: Build SDK | ||
run: make build_${{ matrix.language }} | ||
|
||
- name: Check worktree clean | ||
run: | | ||
git update-index -q --refresh | ||
if ! git diff-files --quiet; then | ||
>&2 echo "error: working tree is not clean, aborting!" | ||
git status | ||
git diff | ||
exit 1 | ||
fi | ||
- if: ${{ matrix.language == 'python' && env.PUBLISH_PYPI == 'true' }} | ||
name: Publish package to PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
user: ${{ env.PYPI_USERNAME }} | ||
password: ${{ env.PYPI_PASSWORD }} | ||
packages_dir: ${{github.workspace}}/sdk/python/bin/dist | ||
|
||
- if: ${{ matrix.language == 'nodejs' && env.PUBLISH_NPM == 'true' }} | ||
uses: JS-DevTools/npm-publish@v1 | ||
with: | ||
access: "public" | ||
token: ${{ env.NPM_TOKEN }} | ||
package: ${{github.workspace}}/sdk/nodejs/bin/package.json | ||
|
||
- if: ${{ matrix.language == 'dotnet' && env.PUBLISH_NUGET == 'true' }} | ||
name: publish nuget package | ||
run: | | ||
dotnet nuget push ${{github.workspace}}/sdk/dotnet/bin/Debug/*.nupkg -s ${{ env.NUGET_FEED_URL }} -k ${{ env.NUGET_PUBLISH_KEY }} | ||
echo "done publishing packages" | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
dotnetversion: | ||
- 6.0.x | ||
goversion: | ||
- 1.22.x | ||
nodeversion: | ||
- 16.x | ||
pythonversion: | ||
- "3.9" | ||
javaversion: | ||
- "11" | ||
language: | ||
- nodejs | ||
- python | ||
- dotnet | ||
- go | ||
# - java |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
.idea | ||
.code | ||
.vscode | ||
**/vendor/ | ||
.pulumi | ||
**/bin/ | ||
**/obj/ | ||
Pulumi.*.yaml | ||
**/node_modules/ | ||
*.DS_Store | ||
|
||
**/command-output/ | ||
|
||
.idea/ | ||
*.iml | ||
|
||
yarn.lock | ||
**/pulumiManifest.go | ||
|
||
ci-scripts | ||
provider/**/schema.go | ||
provider/**/schema-embed.json | ||
**/version.txt | ||
**/nuget | ||
**/dist | ||
|
||
sdk/java/build | ||
sdk/java/.gradle | ||
sdk/java/gradle | ||
sdk/java/gradlew | ||
sdk/java/gradlew.bat |
Oops, something went wrong.