Skip to content

Deploy

Deploy #31

Workflow file for this run

name: Deploy
on:
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "full"
permissions:
contents: write
jobs:
deploy_rust_registry:
runs-on: ubuntu-latest
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@v4
with:
submodules: true
- uses: extractions/setup-just@v2
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
- name: Publish to registry
run: just publish
env:
CARGO_REGISTRIES_CLOUDSMITH_TOKEN: ${{ secrets.CLOUDSMITH_API_KEY }}
deploy_wasm_files:
runs-on: ubuntu-latest
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@v4
with:
submodules: true
- uses: extractions/setup-just@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@v2
with:
shared-key: build
save-if: false
workspaces: |
./
pulumi_wasm_generator_lib/tests/output/cyclic-types/
pulumi_wasm_generator_lib/tests/output/mini-awsnative/
- name: Build
run: just build-wasm-components
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: "timings_rust_wasm_${{ runner.os }}"
path: |
target/cargo-timings/cargo-timing-*.html
pulumi_wasm_generator_lib/tests/**/target/cargo-timings/cargo-timing-*.html
- name: Release
uses: softprops/[email protected]
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
body: ""
files: |
target/wasm32-wasip1/debug/*_provider.wasm
target/wasm32-wasip1/debug/pulumi_wasm.wasm
deploy_language_plugin:
runs-on: ubuntu-latest
steps:
- name: Write release version
run: |
VERSION=${GITHUB_REF_NAME#v}
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/checkout@v4
with:
submodules: true
- uses: extractions/setup-just@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@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/[email protected]
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
body: ""
files: |
pulumi-language-wasm/*.tar.gz
deploy_runner:
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- rust-target: x86_64-unknown-linux-gnu
os: ubuntu-latest
- rust-target: x86_64-apple-darwin
os: macos-latest
- rust-target: aarch64-apple-darwin
os: macos-latest
- rust-target: x86_64-pc-windows-msvc
os: windows-latest
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-latest'
run: |
VERSION=${GITHUB_REF_NAME#v}
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Write release version (Windows)
if: matrix.os == 'windows-latest'
run: |
$VERSION = $env:GITHUB_REF_NAME -replace "^v"
echo "Version: $VERSION"
echo "VERSION=$VERSION" >> $env:GITHUB_ENV
- uses: actions/checkout@v4
with:
submodules: true
- uses: extractions/setup-just@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@v2
with:
shared-key: build
save-if: false
workspaces: |
./
pulumi_wasm_generator_lib/tests/output/cyclic-types/
pulumi_wasm_generator_lib/tests/output/mini-awsnative/
- name: Add target
run: rustup target add ${{ matrix.rust-target }}
- name: Build runner
run: cargo build -p pulumi_wasm_runner --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 }}
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 }}
if: matrix.os != 'windows-latest'
- name: Release
uses: softprops/[email protected]
with:
name: ${{ env.VERSION }}
tag_name: ${{ env.GITHUB_REF_NAME }}
fail_on_unmatched_files: true
prerelease: true
body: ""
files: |
./target/${{ matrix.rust-target }}/debug/pulumi_wasm_runner-${{ matrix.rust-target }}