haskell / actions

Github actions for Haskell CI
147 stars 54 forks source link

Major cleanup #251

Open pavelzw opened 1 year ago

pavelzw commented 1 year ago

This PR tries to clean up this repository a bit. Since there are three actions from three different repositories integrated into this repository and every action does some things a bit differently than the others, I'll try to unify this a bit.

My suggestions are:

andreasabel commented 1 year ago

My suggestions are:

  • Move from ncc + tsc to tsup. This allows us to develop using npm run dev with hot reloading.
  • Add a check-dist.yml workflow that checks that the compiled versions in */dist/index.js are actually correct.
  • Simplify and unify linting, also check linting in CI
  • Automate the release process (i.e. on push of a tag vx.y.z, push the tags vx and vx.y automatically)

Great stuff!

Are you aware of:

The repos here will be moved to the @haskell-actions organisation (ongoing).

mihaimaruseac commented 1 year ago

All 3 repos are split, now we can merge parts of these PR to the 3 repos.

andreasabel commented 1 year ago

Again, thanks for the effort so far, @pavelzw !

@pavelzw wrote:

This PR tries to clean up this repository a bit. Since there are three actions from three different repositories integrated into this repository and every action does some things a bit differently than the others, I'll try to unify this a bit.

The actions are now split into separate repos.

  • Move from ncc + tsc to tsup. This allows us to develop using npm run dev with hot reloading.

I am not an expert here, but this could be discussed at the new repos.

  • Add a check-dist.yml workflow that checks that the compiled versions in */dist/index.js are actually correct.

Something like this exists now for the setup action: https://github.com/haskell-actions/setup/blob/751fcb7b5cf6428e73ed9c4647dd3103926fa423/.github/workflows/workflow.yml#L34-L35 Is that the same as you did here, or could it be improved?

  • Simplify and unify linting, also check linting in CI

This would be interesting for the hlint-* repos.

  • Automate the release process (i.e. on push of a tag vx.y.z, push the tags vx and vx.y automatically)

Nice! I usually do this manually, also bumping the latest tag. This would be interesting to get in all new repos.