Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

@actions/core support tree shaking when bundled in a GitHub Action. #1436

Open
andykenward opened this issue Jun 10, 2023 · 4 comments
Open
Labels
enhancement New feature or request

Comments

@andykenward
Copy link

Describe the enhancement
At the moment, when using @actions/core npm package in your own bundled GitHub action, the bundler is unable to tree shake unused code from @actions/core.

Additional information

If we do the below, it should help most bundlers to determine what can be removed from @actions/core when bundling.

Add to packages/core/package.json

"sideEffects": false,

Arrow Functions

Along with using arrow functions instead of the traditional function expression

export function getInput() {
...
}

to

export const getInput = () => {
...
} 

Entry point

Add a packages/core/src/index.ts entry point that individuals exports.

For example

export {
  addPath,
  exportVariable,
  getBooleanInput,
  getInput,
  getMultilineInput,
  setCommandEcho,
  setOutput,
  setSecret
} from './core'

Circular dependency issue

The 'import' structure also has a circular dependency issue, where files sometimes import each other.

For example core.ts and oidc-utils.ts import each other.

Refactoring the structure of files and function usage would resolve this issue and help with tree shaking when bundling.

@andykenward
Copy link
Author

andykenward commented Jun 22, 2023

While waiting for this issue to be addressed, I've published a fork of @actions/core as @unlike/github-actions-core that supports

  • NodeJS ^18
  • ES module package.
  • Tree shaking
  • Replaced uuid with node:crypto

@kamontat
Copy link

Hello @actions/actions-runtime, Is someone still working on this instead of using fork package?

@andykenward
Copy link
Author

@kamontat Should we submit a ADR as part of the Enhancements and Feature Requests to progress this issue?

@kamontat
Copy link

Hi @robherley, I saw that you is a @actions engineers.
Do you have any suggestion to improve this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants