Skip to content

Commit

Permalink
Update versions and deploy to cloudsmith (#257)
Browse files Browse the repository at this point in the history
Closes #235
  • Loading branch information
andrzejressel authored Jul 21, 2024
1 parent af914c2 commit ea5cfb1
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 46 deletions.
155 changes: 111 additions & 44 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,20 @@ jobs:
- 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'
run: |
docker pull public.ecr.aws/ubuntu/ubuntu:latest
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
./
pulumi_wasm_generator_lib/tests/output/pulumi_providers/command/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/docker/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/random/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/cyclic-types/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/mini-awsnative/
- uses: actions/setup-go@v5
with:
go-version: '^1.22.0'
Expand All @@ -61,18 +62,19 @@ jobs:
if: runner.os == 'macOS'
- run: pulumi version
- run: pulumi login --local
- uses: extractions/setup-just@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: cargo-bins/cargo-binstall@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- uses: Swatinem/rust-cache@v2
with:
shared-key: build
workspaces: |
./
pulumi_wasm_generator_lib/tests/output/pulumi_providers/command/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/docker/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/random/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/cyclic-types/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/mini-awsnative/
- name: Regenerate provider list
run: just regenerate-provider-list
- name: Install requirements
run: just install-requirements
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check
run: just check
- name: Build
Expand All @@ -83,51 +85,116 @@ jobs:
run: just test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RUST_BACKTRACE: "full"
- name: Ensure no files have changed
run: git diff --exit-code

- 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
- name: Ensure no files have changed
run: git diff --exit-code
- uses: benjlevesque/[email protected]
id: short-sha
with:
length: 7
- name: Package language plugin
if: runner.os == 'Linux'
run: just package-language-plugin "0.0.0-${{ steps.short-sha.outputs.sha }}"
- uses: actions/upload-artifact@v4
if: runner.os == 'Linux'
with:
name: wasm_artefacts
if-no-files-found: error
path: |
pulumi_wasm_generator_lib/**/pulumi_providers/**/wasm32-wasip1/debug/*_provider.wasm
target/wasm32-wasip1/debug/pulumi_wasm.wasm
pulumi-language-wasm/*.tar.gz
deploy:
runs-on: ubuntu-latest
needs: build
if: success() && github.ref == 'refs/heads/main'
env:
RUST_BACKTRACE: "full"
steps:
- uses: actions/download-artifact@v4
- 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'
run: |
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:
name: wasm_artefacts
path: artefacts
shared-key: build
save-if: false
workspaces: |
./
pulumi_wasm_generator_lib/tests/output/pulumi_providers/command/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/docker/
pulumi_wasm_generator_lib/tests/output/pulumi_providers/random/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/cyclic-types/
pulumi_wasm_generator_lib/tests/output/pulumi_tests/mini-awsnative/
- 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 }}"
- uses: actions/upload-artifact@v4
with:
name: "timings2_${{ runner.os }}"
path: |
target/cargo-timings/cargo-timing-*.html
pulumi_wasm_generator_lib/tests/**/target/cargo-timings/cargo-timing-*.html
- name: Package language plugin
if: runner.os == 'Linux'
run: just package-language-plugin "0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}"
- name: Publish to registry
run: just publish
env:
CARGO_REGISTRIES_CLOUDSMITH_TOKEN: ${{ secrets.CLOUDSMITH_API_KEY }}
- name: Release
uses: softprops/[email protected]
with:
name: 0.0.0-DEV-${{ steps.short-sha.outputs.sha }}
tag_name: v0.0.0-DEV-${{ steps.short-sha.outputs.sha }}
name: 0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}
tag_name: v0.0.0-NIGHTLY-${{ steps.short-sha.outputs.sha }}
fail_on_unmatched_files: true
prerelease: true
body: ""
files: |
artefacts/**/*
pulumi_wasm_generator_lib/**/pulumi_providers/**/wasm32-wasip1/debug/*_provider.wasm
target/wasm32-wasip1/debug/pulumi_wasm.wasm
pulumi-language-wasm/*.tar.gz
13 changes: 11 additions & 2 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ set windows-shell := ["pwsh.exe", "-c"]
NEXTEST_VERSION := "0.9.72"
# renovate: datasource=crate depName=cargo-component packageName=cargo-component
CARGO_COMPONENT_VERSION := "0.14.0"
# renovate: datasource=crate depName=sd packageName=sd
SD_VERSION := "1.0.0"

@default: build test

Expand All @@ -21,8 +23,9 @@ package-language-plugin VERSION:

install-requirements:
rustup component add rustfmt
cargo binstall --no-confirm cargo-nextest@{{NEXTEST_VERSION}} --force || cargo-nextest --version
cargo binstall --no-confirm cargo-component@{{CARGO_COMPONENT_VERSION}} --force || cargo-component --version
cargo binstall --no-confirm cargo-nextest@{{NEXTEST_VERSION}}
cargo binstall --no-confirm cargo-component@{{CARGO_COMPONENT_VERSION}}
cargo binstall --no-confirm sd@{{SD_VERSION}}

# Compiling everything together causes linking issues
build-wasm-components:
Expand Down Expand Up @@ -79,3 +82,9 @@ test:

docs:
docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material

update-version NEW_VERSION:
sd "0.0.0-DEV" "{{NEW_VERSION}}" "pulumi_wasm_wit/wit/world.wit" "pulumi_wasm_rust_macro/src/lib.rs" \
"providers/pulumi_wasm_provider_docker_rust/Cargo.toml" \
"providers/pulumi_wasm_provider_random_rust/Cargo.toml" \
"Cargo.toml"
Empty file added test
Empty file.

0 comments on commit ea5cfb1

Please sign in to comment.