Skip to content

Deploy

Deploy #124

Workflow file for this run

name: Deploy
on:
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "full"
jobs:
deploy_rust_registry:
runs-on: ubuntu-24.04
steps:
- name: Cleanup unused stuff
run: |
df -h /
sudo rm -rf \
"$AGENT_TOOLSDIRECTORY" \
/opt/google/chrome \
/opt/microsoft/msedge \
/opt/microsoft/powershell \
/opt/pipx \
/usr/lib/mono \
/usr/local/julia* \
/usr/local/lib/android \
/usr/local/lib/node_modules \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/dotnet \
/usr/share/swift
df -h /
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
submodules: true
- uses: extractions/setup-just@dd310ad5a97d8e7b41793f8ef055398d51ad4de6 # v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: cargo-bins/cargo-binstall@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install requirements
run: just install-requirements
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "25.3"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: protoc --version
- uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
with:
shared-key: build-examples
save-if: false
- name: Publish to registry
run: just publish
env:
CARGO_REGISTRIES_CLOUDSMITH_TOKEN: ${{ secrets.CLOUDSMITH_API_KEY }}
deploy_wasm_files:
runs-on: ubuntu-24.04
steps:
- name: Cleanup unused stuff
run: |
df -h /
sudo rm -rf \
"$AGENT_TOOLSDIRECTORY" \
/opt/google/chrome \
/opt/microsoft/msedge \
/opt/microsoft/powershell \
/opt/pipx \
/usr/lib/mono \
/usr/local/julia* \
/usr/local/lib/android \
/usr/local/lib/node_modules \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/dotnet \
/usr/share/swift
df -h /
- name: Write release version
run: |
VERSION=${GITHUB_REF_NAME#v}
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
submodules: true
- uses: extractions/setup-just@dd310ad5a97d8e7b41793f8ef055398d51ad4de6 # v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: cargo-bins/cargo-binstall@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install requirements
run: just install-requirements
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "25.3"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: protoc --version
- uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
with:
shared-key: build-examples
save-if: false
- name: Build
run: |
just build-wasm-components
just build-wasm-components-release
cp target/wasm32-wasip1/debug/pulumi_gestalt.wasm target/wasm32-wasip1/debug/pulumi_gestalt-debug.wasm
cp target/wasm32-wasip1/release/pulumi_gestalt.wasm target/wasm32-wasip1/release/pulumi_gestalt-release.wasm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
target/wasm32-wasip1/release/*-release.wasm
target/wasm32-wasip1/debug/*-debug.wasm
deploy_language_plugin:
runs-on: ubuntu-24.04
steps:
- name: Write release version
run: |
VERSION=${GITHUB_REF_NAME#v}
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
submodules: true
- uses: extractions/setup-just@dd310ad5a97d8e7b41793f8ef055398d51ad4de6 # v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5
with:
go-version: '^1.22.0'
cache-dependency-path: "**/go.sum"
- run: go version
- name: Package language plugin
if: runner.os == 'Linux'
run: just package-language-plugin "$VERSION"
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
pulumi-language-gestalt/*.tar.gz
deploy_runner:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- rust-target: x86_64-unknown-linux-gnu
os: ubuntu-24.04
- rust-target: x86_64-apple-darwin
os: macos-14
- rust-target: aarch64-apple-darwin
os: macos-14
- rust-target: x86_64-pc-windows-msvc
os: windows-2022
steps:
- name: Cleanup unused stuff
if: runner.os == 'Linux'
run: |
df -h /
sudo rm -rf \
"$AGENT_TOOLSDIRECTORY" \
/opt/google/chrome \
/opt/microsoft/msedge \
/opt/microsoft/powershell \
/opt/pipx \
/usr/lib/mono \
/usr/local/julia* \
/usr/local/lib/android \
/usr/local/lib/node_modules \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/dotnet \
/usr/share/swift
df -h /
- run: git config --system core.longpaths true
if: runner.os == 'Windows'
- name: Write release version (non-Windows)
if: matrix.os != 'windows-2022'
run: |
VERSION=${GITHUB_REF_NAME#v}
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Write release version (Windows)
if: matrix.os == 'windows-2022'
run: |
$VERSION = $env:GITHUB_REF_NAME -replace "^v"
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $env:GITHUB_ENV
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
submodules: true
- uses: extractions/setup-just@dd310ad5a97d8e7b41793f8ef055398d51ad4de6 # v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: cargo-bins/cargo-binstall@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install requirements
run: just install-requirements
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "25.3"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: protoc --version
- uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
with:
shared-key: build-examples
save-if: false
- name: Add target
run: rustup target add ${{ matrix.rust-target }}
- name: Build runner (Debug)
run: cargo build -p pulumi_gestalt_runner --target ${{ matrix.rust-target }}
- name: Build runner (Release)
run: cargo build -p pulumi_gestalt_runner --release --target ${{ matrix.rust-target }}
- run: |
cp ./target/${{ matrix.rust-target }}/debug/pulumi_gestalt_runner.exe ./target/${{ matrix.rust-target }}/debug/pulumi_gestalt_runner-${{ matrix.rust-target }}-debug
cp ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner.exe ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}
cp ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner.exe ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}-release
if: matrix.os == 'windows-2022'
- run: |
cp ./target/${{ matrix.rust-target }}/debug/pulumi_gestalt_runner ./target/${{ matrix.rust-target }}/debug/pulumi_gestalt_runner-${{ matrix.rust-target }}-debug
cp ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}
cp ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner ./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}-release
if: matrix.os != 'windows-2022'
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
./target/${{ matrix.rust-target }}/debug/pulumi_gestalt_runner-${{ matrix.rust-target }}-debug
./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}
./target/${{ matrix.rust-target }}/release/pulumi_gestalt_runner-${{ matrix.rust-target }}-release
deploy_c_library:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- target: linux-x86_64
os: ubuntu-24.04
os_type: linux
- target: macos-x86_64
os: macos-13
os_type: macos
- target: macos-arm64
os: macos-14
os_type: macos
- target: windows-x86_64
os: windows-2022
os_type: windows
steps:
- name: Cleanup unused stuff
if: runner.os_type == 'Linux'
run: |
df -h /
sudo rm -rf \
"$AGENT_TOOLSDIRECTORY" \
/opt/google/chrome \
/opt/microsoft/msedge \
/opt/microsoft/powershell \
/opt/pipx \
/usr/lib/mono \
/usr/local/julia* \
/usr/local/lib/android \
/usr/local/lib/node_modules \
/usr/local/share/chromium \
/usr/local/share/powershell \
/usr/share/dotnet \
/usr/share/swift
df -h /
- run: git config --system core.longpaths true
if: matrix.os_type == 'windows'
- name: Write release version (non-Windows)
if: matrix.os_type != 'windows'
run: |
VERSION=${GITHUB_REF_NAME#v}
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Write release version (Windows)
if: matrix.os_type == 'windows'
run: |
$VERSION = $env:GITHUB_REF_NAME -replace "^v"
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $env:GITHUB_ENV
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
submodules: true
- uses: extractions/setup-just@dd310ad5a97d8e7b41793f8ef055398d51ad4de6 # v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: cargo-bins/cargo-binstall@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install requirements
run: just install-requirements
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "25.3"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- run: protoc --version
- uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2
with:
shared-key: build-examples
save-if: false
- name: Build runner (Debug)
run: cargo build -p pulumi_native_c
- name: Build runner (Release)
run: cargo build -p pulumi_native_c --release
- run: |
cp ./target/debug/pulumi_native_c.dll ./target/debug/pulumi_native_c-${{ matrix.target }}-debug.dll
cp ./target/debug/pulumi_native_c.lib ./target/debug/pulumi_native_c-${{ matrix.target }}-debug.lib
cp ./target/debug/pulumi_native_c.pdb ./target/debug/pulumi_native_c-${{ matrix.target }}-debug.pdb
cp ./target/release/pulumi_native_c.dll ./target/release/pulumi_native_c-${{ matrix.target }}-release.dll
cp ./target/release/pulumi_native_c.lib ./target/release/pulumi_native_c-${{ matrix.target }}-release.lib
cp ./target/release/pulumi_native_c.pdb ./target/release/pulumi_native_c-${{ matrix.target }}-release.pdb
if: matrix.os_type == 'windows'
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
./target/debug/pulumi_native_c-${{ matrix.target }}-debug.dll
./target/debug/pulumi_native_c-${{ matrix.target }}-debug.lib
./target/debug/pulumi_native_c-${{ matrix.target }}-debug.pdb
./target/release/pulumi_native_c-${{ matrix.target }}-release.dll
./target/release/pulumi_native_c-${{ matrix.target }}-release.lib
./target/release/pulumi_native_c-${{ matrix.target }}-release.pdb
if: matrix.os_type == 'windows'
- run: |
cp ./target/debug/libpulumi_native_c.a ./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.a
cp ./target/debug/libpulumi_native_c.so ./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.so
cp ./target/release/libpulumi_native_c.a ./target/release/libpulumi_native_c-${{ matrix.target }}-release.a
cp ./target/release/libpulumi_native_c.so ./target/release/libpulumi_native_c-${{ matrix.target }}-release.so
if: matrix.os_type == 'linux'
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.a
./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.so
./target/release/libpulumi_native_c-${{ matrix.target }}-release.a
./target/release/libpulumi_native_c-${{ matrix.target }}-release.so
if: matrix.os_type == 'linux'
- run: |
cp ./target/debug/libpulumi_native_c.a ./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.a
cp ./target/debug/libpulumi_native_c.dylib ./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.dylib
cp ./target/release/libpulumi_native_c.a ./target/release/libpulumi_native_c-${{ matrix.target }}-release.a
cp ./target/release/libpulumi_native_c.dylib ./target/release/libpulumi_native_c-${{ matrix.target }}-release.dylib
if: matrix.os_type == 'macos'
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.a
./target/debug/libpulumi_native_c-${{ matrix.target }}-debug.dylib
./target/release/libpulumi_native_c-${{ matrix.target }}-release.a
./target/release/libpulumi_native_c-${{ matrix.target }}-release.dylib
if: matrix.os_type == 'macos'
deploy_static_files:
runs-on: ubuntu-24.04
steps:
- name: Write release version
run: |
VERSION=${GITHUB_REF_NAME#v}
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- name: Release
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
repository: andrzejressel/pulumi-gestalt-releases
token: ${{ secrets.RELEASE_TOKEN }}
body: ""
files: |
./crates/c_ffi/pulumi_native.h
./crates/wit/wit/world.wit
./crates/wit/wit/deps/pulumi-gestalt-external.wit