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

feat: initial release #1

Merged
merged 13 commits into from
Jul 12, 2023
Merged

feat: initial release #1

merged 13 commits into from
Jul 12, 2023

Conversation

kettanaito
Copy link
Contributor

@kettanaito kettanaito commented Jul 10, 2023

Users can now adopt Artillery easier in their GitHub workflows by using our action:

- name: Load tests
  uses: artilleryio/action-run@v1
  with:
    test: ./prod.yml
    output: ./my-report.json

Changes

  • Adds the actual action implementation (depending on our Docker container).
  • Adds an automated release and tagging pipelines using Release Please.
  • Adds a nice README with minimal documentation and a few usage examples.

Roadmap

  • Skip the CHANGELOG generation and treat GitHub Releases as the changelog.

@kettanaito
Copy link
Contributor Author

Disabling changelog

I researched this and found no existing means to disable the CHANGELOG.md generation by Release Please. Neither the GitHub Action nor the underlying CLI provide a flag to achieve that behavior.

I've opened a feature proposal to add it googleapis/release-please#2007.

Copy link

@bernardobridge bernardobridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on this! Just have a difference of opinion on maybe exposing an additional first flag, but LGTM otherwise

index.js Outdated Show resolved Hide resolved

## Outputs

### `report`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the difference between this and the output option?

Copy link
Contributor Author

@kettanaito kettanaito Jul 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is not the option you provide to the action but what output the action provides you. In other words, regardless of how you run Artillery as a part of your workflow, you can always access the test run report under ${{ steps[id].outputs.report }} (a path to the report file on the remote machine).

This is pretty handy as an output because it allows devs to manipulate the report easier, using the standard GitHub Actions' output API. For example, they can upload the report as an artifact or feed it to another step by referencing the output.

@hassy
Copy link
Member

hassy commented Jul 10, 2023

Is there a way to default to using the latest Docker image, but allow overrides explicitly? So that users don't have to remember to always include container?

@kettanaito
Copy link
Contributor Author

@hassy, I will look more into it. So far, the closest thing for a custom action to specify a Docker container is creating a Docker container action. Based on the resources I read, it looks like the container will only be used to run the action (?) but not the entire workflow, so it doesn't act as an override for the job-level container field.

I will try to find some examples of this and see if we can use it in any way to make the container setup easier for the users.

@kettanaito
Copy link
Contributor Author

@hassy, I've played around with the Docker GitHub Actions and found a way for us to use our container as a part of our action so the developers don't have to specify it in their workflows anymore.

This change also means that we don't keep any dependencies and use an entrypoint.sh script in the container to run the CLI as a part of this action. I've also added the tests for the action that take it from the repo and embed it into a workflow, then validate the run and the action's output.

chore: try addnab/docker-run-action

chore: try local entrypoint
Copy link

@bernardobridge bernardobridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM ! Cool to see you ended up with the Docker Container Action after all. Now we know about both ways, so if/when we do ship a NodeJS API, we can revisit this easily if we want 👍

@kettanaito
Copy link
Contributor Author

@bernardobridge, exactly! Since the Docker container usage became an implementation detail, we can manage it internally without introducing any breaking changes to the consumers.

@kettanaito kettanaito merged commit 66e8447 into main Jul 12, 2023
@kettanaito kettanaito deleted the feat/action branch July 12, 2023 11:42
@kettanaito
Copy link
Contributor Author

Documenting the new action in here https://github.com/artilleryio/docs/pull/21

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

Successfully merging this pull request may close these issues.

3 participants