pulumi / actions

Deploy continuously to your cloud of choice, using your favorite language, Pulumi, and GitHub!
Apache License 2.0
253 stars 72 forks source link

Installing AWS resource plugin fails. #427

Open zacaytion opened 2 years ago

zacaytion commented 2 years ago

Hello!

Issue details

Over the weekend, actions have started to fail after attempting to install the aws resource plugin. This issue only seems to happen when run inside a github action, as deploying manually with the pulumi cli succeeds without any errors.

Steps to reproduce

The action is running on ubuntu-latest with other actions: actions/setup-node@v2, actions/cache@v2, actions/checkout@v2 and pulumi/actions@v3

Unable to reproduce outside of running the github action. Here is the output, including the error messages:

The output is:

Run pulumi/actions@v3
  with:
    command: up
    stack-name: XXXXXXs/sites/development
    work-dir: ./infra/apps/sites
    comment-on-pr: false
    github-token: ***
    parallel: 2147483647
    target-dependents: false
    refresh: false
    upsert: false
    edit-pr-comment: true
  env:
    AWS_ACCESS_KEY_ID: ***
    AWS_REGION: us-west-2
    AWS_SECRET_ACCESS_KEY: ***
    PULUMI_ACCESS_TOKEN: ***
Configured range: ^3
Matched version: v3.15.0
Install destination is /home/runner/.pulumi
Successfully deleted pre-existing /home/runner/.pulumi/bin
/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/.pulumi -f /home/runner/work/_temp/a60fb08b-ce9f-4e7c-8f40-466caa1d58b1
pulumi up on XXXXXXXXX/sites/development
  Updating (XXXXXXXX/development)

  View Live: https://app.pulumi.com/XXXXXXXXX

      pulumi:pulumi:Stack sites-development running 

      pulumi:providers:aws default_4_10_0  error: no resource plugin 'aws-v4.10.0' found in the workspace or on your $PATH, install the plugin using `pulumi plugin install resource aws v4.10.0`

      pulumi:pulumi:Stack sites-development  
      pulumi:providers:aws default_4_10_0 **failed** 1 error

  Diagnostics:
    pulumi:providers:aws (default_4_10_0):
      error: no resource plugin 'aws-v4.10.0' found in the workspace or on your $PATH, install the plugin using `pulumi plugin install resource aws v4.10.0`

  Resources:
      1 unchanged

  Duration: 15s

  Error: code: 255
   stdout: Updating (XXXXXXXXX/development)

  View Live: https://app.pulumi.com/XXXXXXXX

      pulumi:pulumi:Stack sites-development running 
      pulumi:providers:aws default_4_10_0  error: no resource plugin 'aws-v4.10.0' found in the workspace or on your $PATH, install the plugin using `pulumi plugin install resource aws v4.10.0`
      pulumi:pulumi:Stack sites-development  
      pulumi:providers:aws default_4_10_0 **failed** 1 error

  Diagnostics:
    pulumi:providers:aws (default_4_10_0):
      error: no resource plugin 'aws-v4.10.0' found in the workspace or on your $PATH, install the plugin using `pulumi plugin install resource aws v4.10.0`

  Resources:
      1 unchanged

  Duration: 15s

   stderr: [resource plugin aws-4.5.1] installing

  Downloading plugin: 0 B / 73.43 MiB    0.00%
  Downloading plugin: 3.33 MiB / 73.43 MiB    4.54% 4s
  Downloading plugin: 10.31 MiB / 73.43 MiB   14.04% 2s
  Downloading plugin: 16.83 MiB / 73.43 MiB   22.92% 2s
  Downloading plugin: 23.41 MiB / 73.43 MiB   31.88% 1s
  Downloading plugin: 29.43 MiB / 73.43 MiB   40.07% 1s
  Downloading plugin: 35.99 MiB / 73.43 MiB   49.01% 1s
  Downloading plugin: 45.35 MiB / 73.43 MiB   61.75%
  Downloading plugin: 61.87 MiB / 73.43 MiB   84.26%
  Downloading plugin: 72.59 MiB / 73.43 MiB   98.85%
  Downloading plugin: 73.43 MiB / 73.43 MiB  100.00% 1s

   err?: 

Expected: I expected the action to install the aws plugin and deploy the changes Actual: The action fails and the deployment is skipped.

simenandre commented 2 years ago

Hello, thank you for posting this issue!

I think this has to do with the AWS provider, but for reference, would you mind sharing the full workflow file?

aterreno commented 2 years ago

this is mega annoying and still happening btw. I am not sure it's related to the provider, it would be good for the action to have a pre-command to run for example or to support pulumi plugin install as this keeps happening every time we update the yarn/npm dependency version

rodrigobrim commented 2 years ago

How can I work around it?

aterreno commented 2 years ago

@rodrigobrim I've endedup installing the plugin all the times

      - name: Install Pulumi CLI
        uses: pulumi/setup-pulumi@v2
      - name: Install pulumi aws plugin
        run: pulumi plugin install resource aws v5.9.2 # matching package.json "@pulumi/aws"
      - name: Install pulumi datadog plugin
        run: pulumi plugin install resource datadog v4.9.0 # matching package.json "@pulumi/datadog"  
      - uses: pulumi/actions@v3
        with:
          command: up
simenandre commented 2 years ago

@aterreno what kind of runtime are you using? Are you running yarn install or npm install before what you've shared here?

aterreno commented 2 years ago

@cobraz apologies for late reply, we use yarn and cache action, snippet:

      - name: Get yarn cache directory path
        id: yarn-cache-dir-path
        run: echo "::set-output name=dir::$(yarn cache dir)"
      - uses: actions/cache@v3
        id: node-modules-cache
        with:
          path: '**/node_modules'
          key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }}
      - uses: actions/cache@v3
        id: yarn-cache
        with:
          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
      - name: Install packages
        if: |
          steps.yarn-cache.outputs.cache-hit != 'true' ||
          steps.node-modules-cache.outputs.cache-hit != 'true'
        working-directory: ./functions/xyz
        run: yarn install