Rust 2024 #1723
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
name: Build | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
env: | |
CARGO_TERM_COLOR: always | |
permissions: | |
contents: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04, windows-2022, macos-14] | |
env: | |
RUST_BACKTRACE: "full" | |
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' | |
- 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: Pull required docker images | |
if: runner.os == 'Linux' | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 10 | |
max_attempts: 10 | |
command: docker pull public.ecr.aws/ubuntu/ubuntu:latest | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '^1.22.0' | |
cache-dependency-path: "**/go.sum" | |
- run: go version | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: "25.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: protoc --version | |
- run: brew install pulumi | |
if: runner.os == 'macOS' | |
- run: pulumi version | |
- run: pulumi login --local | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: build | |
workspaces: | | |
./ | |
pulumi_wasm_generator_lib/tests/output/array-of-enum-map/ | |
pulumi_wasm_generator_lib/tests/output/azure-native-nested-types/ | |
pulumi_wasm_generator_lib/tests/output/cyclic-types/ | |
pulumi_wasm_generator_lib/tests/output/different-enum/ | |
pulumi_wasm_generator_lib/tests/output/functions-secrets/ | |
pulumi_wasm_generator_lib/tests/output/mini-awsnative/ | |
pulumi_wasm_generator_lib/tests/output/output-funcs/ | |
pulumi_wasm_generator_lib/tests/output/output-funcs-edgeorder/ | |
pulumi_wasm_generator_lib/tests/output/unions-inline/ | |
pulumi_wasm_generator_lib/tests/output/unions-inside-arrays/ | |
- name: Regenerate provider list | |
run: just regenerate-provider-list | |
- name: Check | |
run: just check | |
- name: Build | |
run: just build | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Test | |
run: just test | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Get code coverage | |
run: just test-coverage | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload coverage data to codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
files: lcov.info | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload test results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
files: target/nextest/ci/junit.xml | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- run: git add . && git diff | |
- run: git diff --cached | |
- name: Ensure no files have changed | |
run: git add . && git diff --quiet && git diff --cached --quiet | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "timings_${{ runner.os }}" | |
path: | | |
target/cargo-timings/cargo-timing-*.html | |
pulumi_wasm_generator_lib/tests/**/target/cargo-timings/cargo-timing-*.html | |
deploy: | |
runs-on: ubuntu-24.04 | |
needs: build | |
if: success() && github.ref == 'refs/heads/main' | |
env: | |
RUST_BACKTRACE: "full" | |
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 | |
token: ${{ secrets.PAT }} | |
- 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: Pull required docker images | |
if: runner.os == 'Linux' | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 10 | |
max_attempts: 10 | |
command: docker pull public.ecr.aws/ubuntu/ubuntu:latest | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '^1.22.0' | |
cache-dependency-path: "**/go.sum" | |
- run: go version | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v3 | |
with: | |
version: "25.3" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: protoc --version | |
- run: brew install pulumi | |
if: runner.os == 'macOS' | |
- run: pulumi version | |
- run: pulumi login --local | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: build | |
save-if: false | |
workspaces: | | |
./ | |
pulumi_wasm_generator_lib/tests/output/array-of-enum-map/ | |
pulumi_wasm_generator_lib/tests/output/azure-native-nested-types/ | |
pulumi_wasm_generator_lib/tests/output/cyclic-types/ | |
pulumi_wasm_generator_lib/tests/output/different-enum/ | |
pulumi_wasm_generator_lib/tests/output/functions-secrets/ | |
pulumi_wasm_generator_lib/tests/output/mini-awsnative/ | |
pulumi_wasm_generator_lib/tests/output/output-funcs/ | |
pulumi_wasm_generator_lib/tests/output/output-funcs-edgeorder/ | |
pulumi_wasm_generator_lib/tests/output/unions-inline/ | |
pulumi_wasm_generator_lib/tests/output/unions-inside-arrays/ | |
- uses: benjlevesque/[email protected] | |
id: short-sha | |
with: | |
length: 7 | |
- name: Replace version | |
run: just update-version "0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}" | |
- name: Build | |
run: just build | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Test | |
run: just test | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create commit | |
run: | | |
git config --local user.name "GitHub Actions" | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
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 }}" |