on: repository_dispatch: types: [ run-acceptance-tests-command ] pull_request: paths-ignore: - 'CHANGELOG.md' - 'CHANGELOG_PENDING.md' env: PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_PROD_ACCESS_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PULUMI_TEST_OWNER: "moolumi" jobs: comment-notification: # We only care about adding the result to the PR if it's a repository_dispatch event if: github.event_name == 'repository_dispatch' runs-on: ubuntu-latest steps: - name: Create URL to the run output id: vars run: echo ::set-output name=run-url::https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID - name: Update with Result uses: peter-evans/create-or-update-comment@v1 with: token: ${{ secrets.GITHUB_TOKEN }} repository: ${{ github.event.client_payload.github.payload.repository.full_name }} issue-number: ${{ github.event.client_payload.github.payload.issue.number }} body: | Please view the results of the PR Build + Acceptance Tests Run [Here][1] [1]: ${{ steps.vars.outputs.run-url }} lint: container: golangci/golangci-lint:latest name: Lint ${{ matrix.directory }} strategy: matrix: directory: [ sdk, pkg, tests ] runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v2 - name: Lint ${{ matrix.directory }} run: | cd ${{ matrix.directory }} && golangci-lint run -c ../.golangci.yml build_and_test: name: Build & Test strategy: matrix: platform: [ ubuntu-latest, macos-latest ] go-version: [1.16.x] python-version: [ 3.9.x ] dotnet-version: [ 3.1.x ] node-version: [ 14.x ] if: github.event_name == 'repository_dispatch' || github.event.pull_request.head.repo.full_name == github.repository runs-on: ${{ matrix.platform }} steps: - name: Set up Go ${{ matrix.go-version }} uses: actions/setup-go@v1 with: go-version: ${{ matrix.go-version }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Set up DotNet ${{ matrix.dotnet-version }} uses: actions/setup-dotnet@v1 with: dotnet-version: ${{ matrix.dotnet-version }} - run: dotnet nuget add source ${{ runner.temp }}/opt/pulumi/nuget - name: Set up Node ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Install pipenv uses: dschep/install-pipenv-action@v1 - name: Setup git run: | git config --global user.email "you@example.com" git config --global user.name "Your Name" - name: Update path run: | echo "${{ runner.temp }}/opt/pulumi/bin" >> $GITHUB_PATH - name: Checkout Repo uses: actions/checkout@v2 - name: Fetch Tags run: | git fetch --quiet --prune --unshallow --tags - name: Set Go Dep path run: | echo "PULUMI_GO_DEP_ROOT=$(dirname $(pwd))" >> $GITHUB_ENV - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@v1.2.0 with: repo: pulumi/pulumictl - name: Ensure run: | make ensure - name: Dist run: | make dist env: PULUMI_NODE_MODULES: ${{ runner.temp }}/opt/pulumi/node_modules PULUMI_LOCAL_NUGET: ${{ runner.temp }}/opt/pulumi/nuget PULUMI_ROOT: ${{ runner.temp }}/opt/pulumi - name: Install run: | make install_all env: PULUMI_NODE_MODULES: ${{ runner.temp }}/opt/pulumi/node_modules PULUMI_LOCAL_NUGET: ${{ runner.temp }}/opt/pulumi/nuget PULUMI_ROOT: ${{ runner.temp }}/opt/pulumi - name: Test run: make test_all env: PULUMI_NODE_MODULES: ${{ runner.temp }}/opt/pulumi/node_modules PULUMI_LOCAL_NUGET: ${{ runner.temp }}/opt/pulumi/nuget PULUMI_ROOT: ${{ runner.temp }}/opt/pulumi windows-build: name: Windows Build + Test strategy: matrix: go-version: [1.16.x] node-version: [14.x] python-version: [3.9.x] dotnet: [3.1.x] if: github.event_name == 'repository_dispatch' || github.event.pull_request.head.repo.full_name == github.repository runs-on: windows-latest env: GOPATH: ${{ github.workspace }} PULUMI_LOCAL_NUGET: "D:\\Pulumi\\nuget" ACTIONS_ALLOW_UNSECURE_COMMANDS: true steps: - name: Install DotNet ${{ matrix.dotnet }} uses: actions/setup-dotnet@v1 with: dotnet-version: ${{ matrix.dotnet }} - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - name: Set up Go ${{ matrix.go-version }} uses: actions/setup-go@v1 with: go-version: ${{ matrix.go-version }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install Python Deps run: | pip3 install pyenv-win pip3 install pipenv - run: dotnet nuget add source ${{ env.PULUMI_LOCAL_NUGET }} - name: Set Build Env Vars shell: bash run: | echo "D:\\Pulumi\\bin" >> $GITHUB_PATH - name: Install AWS CLI Tools uses: chrislennon/action-aws-cli@v1.1 - name: Install pulumictl uses: jaxxstorm/action-install-gh-release@v1.2.0 with: repo: pulumi/pulumictl - name: Check out code into the Go module directory uses: actions/checkout@v2 with: path: ./src/github.com/${{ github.repository }} - name: Fetch Tags run: | cd ./src/github.com/${{ github.repository }} && git fetch --quiet --prune --unshallow --tags - name: Clean run: dotnet nuget locals all --clear - name: Create Local Nuget run: mkdir -p "D:\\Pulumi\\nuget" shell: bash - name: Get dependencies run: | cd src\github.com\${{ github.repository }} pushd . cd sdk go mod download popd pushd . cd pkg go mod download popd pushd . cd tests go mod download popd - name: Build Pulumi run: | cd src\github.com\${{ github.repository }} dotnet msbuild /t:Build /v:Detailed build.proj /p:PulumiRoot="D:\\Pulumi" - run: | which pulumi pulumi version shell: bash - name: Run Pulumi Tests run: | cd src\github.com\${{ github.repository }} dotnet msbuild /t:Tests /v:Detailed build.proj /p:PulumiRoot="D:\\Pulumi"