-
Notifications
You must be signed in to change notification settings - Fork 5
143 lines (143 loc) · 4.46 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
env:
AWS_REGION: us-west-2
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GO111MODULE: "on"
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
PROVIDER: policy
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
PULUMI_API: https://api.pulumi-staging.io
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
PYPI_USERNAME: __token__
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
VERSION: ${{ github.event.client_payload.ref }}
jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: ${{matrix.node-version}}
registry-url: https://registry.npmjs.org
- name: Install pipenv
run: |
python -m pip install --upgrade pipenv pip requests wheel urllib3 chardet
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Checkout Repo
uses: actions/checkout@v2
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Yarn
run: curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.13.0
- name: Ensure
run: |
make ensure
- name: Lint Node
run: |
cd sdk/nodejs/policy && make lint
- name: Lint Python
run: |
cd sdk/python && make lint
strategy:
fail-fast: true
matrix:
platform: [ ubuntu-latest ]
go-version: [ 1.21.x ]
python-version: [ 3.9.x ]
node-version: [ 18.x ]
build_test_publish:
name: Build, Test, and Publish
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/actions@v4
with:
pulumi-version: ">=3.88.0"
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{matrix.node-version}}
registry-url: https://registry.npmjs.org
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{matrix.python-version}}
- name: Install pipenv
run: |
python -m pip install --upgrade pipenv pip requests wheel urllib3 chardet twine
- name: Ensure dependencies
run: make ensure
- name: Checkout Scripts Repo
uses: actions/checkout@v2
with:
path: ci-scripts
repository: pulumi/scripts
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-region: ${{ env.AWS_REGION }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
role-duration-seconds: 3600
role-session-name: ${{ env.PROVIDER }}@githubActions
role-to-assume: ${{ secrets.AWS_CI_ROLE_ARN }}
- name: Build SDK
run: make only_build
- name: Check worktree clean
run: ./ci-scripts/ci/check-worktree-is-clean
- name: Run Unit Tests
run: make only_test_fast
- name: Run Integration Tests
run: make test_all
- name: Publish
run: make publish_packages
- name: Trigger Docs Build
run: |
./ci-scripts/ci/build-package-docs.sh "policy"
env:
TRAVIS: true
PULUMI_BOT_GITHUB_API_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }}
TRAVIS_TAG: ${{ env.VERSION }}
strategy:
fail-fast: true
matrix:
platform: [ ubuntu-latest ]
go-version: [ 1.21.x ]
python-version: [ 3.9.x ]
node-version: [ 18.x ]
name: main
"on":
push:
branches:
- main
paths-ignore:
- CHANGELOG.md
tags-ignore:
- v*
- sdk/*
- '**'