1+ on :
2+ pull_request :
3+ paths-ignore :
4+ - docs
5+ - .devcontainer
6+ - examples
7+
8+ jobs :
9+ build_sdks :
10+ name : Build SDKs
11+ runs-on : ubuntu-latest
12+ strategy :
13+ fail-fast : false
14+ matrix :
15+ dotnetversion :
16+ - 6.0.x
17+ goversion :
18+ - 1.21.x
19+ nodeversion :
20+ - 18.x
21+ pythonversion :
22+ - " 3.9"
23+ # javaversion:
24+ # - "11"
25+ language :
26+ - nodejs
27+ - python
28+ - dotnet
29+ - go
30+ # - java
31+
32+ steps :
33+ - name : Checkout Repo
34+ uses : actions/checkout@v2
35+ - name : Unshallow clone for tags
36+ run : git fetch --prune --unshallow --tags
37+
38+ - name : Install Go
39+ uses : actions/setup-go@v5
40+ with :
41+ go-version : ${{matrix.goversion}}
42+
43+ - name : Install pulumictl
44+ uses : jaxxstorm/action-install-gh-release@v1.12.0
45+ with :
46+ repo : pulumi/pulumictl
47+
48+ - name : Install pulumi
49+ uses : pulumi/actions@v5
50+
51+ - if : ${{ matrix.language == 'nodejs'}}
52+ name : Setup Node
53+ uses : actions/setup-node@v4
54+ with :
55+ node-version : ${{matrix.nodeversion}}
56+ registry-url : https://registry.npmjs.org
57+
58+ - if : ${{ matrix.language == 'dotnet'}}
59+ name : Setup DotNet
60+ uses : actions/setup-dotnet@v4
61+ with :
62+ dotnet-version : ${{matrix.dotnetversion}}
63+
64+ - if : ${{ matrix.language == 'python'}}
65+ name : Setup Python
66+ uses : actions/setup-python@v5
67+ with :
68+ python-version : ${{matrix.pythonversion}}
69+
70+ - if : ${{ matrix.language == 'java'}}
71+ name : Setup Java
72+ uses : actions/setup-java@v4
73+ with :
74+ cache : gradle
75+ distribution : temurin
76+ java-version : ${{matrix.javaversion}}
77+
78+ - name : Build SDK
79+ run : make ${{ matrix.language }}_sdk
80+
81+ - name : Build Example
82+ run : make ${{ matrix.language }}_example
83+
84+ - name : Check worktree clean
85+ run : |
86+ git update-index -q --refresh
87+ if ! git diff-files --quiet; then
88+ >&2 echo "error: working tree is not clean, aborting!"
89+ git status
90+ git diff
91+ exit 1
92+ fi
0 commit comments