Skip to content

Commit

Permalink
Update readme & setup docs
Browse files Browse the repository at this point in the history
  • Loading branch information
sarthak-saxena committed Mar 5, 2020
1 parent 6fde136 commit f99680d
Show file tree
Hide file tree
Showing 8 changed files with 483 additions and 4,823 deletions.
11 changes: 11 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: ES Lint Check

on:
pull_request:
types: ['opened', 'reopened', 'synchronize']

jobs:
lint:
runs-on: ubuntu-latest
steps:
- run: npm run lint
25 changes: 0 additions & 25 deletions .github/workflows/test.yml

This file was deleted.

21 changes: 21 additions & 0 deletions Demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Calculate JS Bundle Size

on:
pull_request:
types: ['opened', 'reopened', 'synchronize']
jobs:
calculate-size:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@v1
with:
node-version: '10.0.0'
- uses: sarthak-saxena/JSBundleSize@master
with:
bootstrap: 'yarn install --ignore-engines'
build_command: 'yarn run build:crop'
dist_path: 'packages/crop/dist'
token: ${{ secrets.GITHUB_TOKEN }}


12 changes: 6 additions & 6 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License
The MIT License (MIT)

Copyright (c) 2019 GitHub Actions
Copyright (c) 2018 GitHub, Inc. and contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand All @@ -9,13 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
136 changes: 36 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,114 +1,50 @@
# JS bundle size
Github action for computing javascript bundle size.

<p align="center">
<a href="https://github.com/actions/javascript-action/actions"><img alt="javscript-action status" src="https://github.com/actions/javascript-action/workflows/units-test/badge.svg"></a>
</p>
![How to use JSBundle Size action](https://i.imgur.com/koKtvty.gif)

# Create a JavaScript Action
## Usage:

Use this template to bootstrap the creation of a JavaScript action.:rocket:
Checkout [action.yml](./action.yml)

This template includes tests, linting, a validation workflow, publishing, and versioning guidance.

If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action)

## Create an action from this template

Click the `Use this Template` and provide the new repo details for your action

## Code in Master

Install the dependencies
```bash
$ npm install
```

Run the tests :heavy_check_mark:
```bash
$ npm test

PASS ./index.test.js
✓ throws invalid number (3ms)
wait 500 ms (504ms)
test runs (95ms)

...
```

## Change action.yml

The action.yml contains defines the inputs and output for your action.

Update the action.yml with your name, description, inputs and outputs for your action.

See the [documentation](https://help.github.com/en/articles/metadata-syntax-for-github-actions)

## Change the Code

Most toolkit and CI/CD operations involve async operations so the action is run in an async function.

```javascript
const core = require('@actions/core');
...

async function run() {
try {
...
}
catch (error) {
core.setFailed(error.message);
}
}

run()
```

See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages.

## Package for distribution

GitHub Actions will run the entry point from the action.yml. Packaging assembles the code into one file that can be checked in to Git, enabling fast and reliable execution and preventing the need to check in node_modules.

Actions are run from GitHub repos. Packaging the action will create a packaged action in the dist folder.

Run package
Please check the below code for detailed usage:
```yaml
steps:
- uses: actions/checkout@master
- uses: sarthak-saxena/JSBundleSize@master
with:
bootstrap: <Command for installing dependencies ex npm install>
build_command: <Command to build/bundle code>
dist_path: <Output path for your bundle>
token: ${{ secrets.GITHUB_TOKEN }}

```bash
npm run package
```

Since the packaged index.js is run from the dist folder.
By default github actions work on `node 12`.To specify a specific node version use:

```bash
git add dist
```yaml
- uses: actions/setup-node@v1
with:
node-version: '10.0.0'
```
## Create a release branch

Users shouldn't consume the action from master since that would be latest code and actions can break compatibility between major versions.

Checkin to the v1 release branch

```bash
$ git checkout -b v1
$ git commit -a -m "v1 release"
```
**Ex:**
```yaml
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@v1
with:
node-version: '10.0.0'
- uses: sarthak-saxena/JSBundleSize@master
with:
bootstrap: 'npm install'
build_command: 'npm run build'
dist_path: 'dist'
token: ${{ secrets.GITHUB_TOKEN }}

```bash
$ git push origin v1
```

Your action is now published! :rocket:

See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md)

## Usage

You can now consume the action by referencing the v1 branch

```yaml
uses: actions/javascript-action@v1
with:
milliseconds: 1000
```
Also check [Demo.yml](./demo.yml) for complete configuration(on using github actions)

See the [actions tab](https://github.com/actions/javascript-action/actions) for runs of this action! :rocket:
## License
The scripts and documentation in this project are released under the [MIT License](./LICENSE)
23 changes: 0 additions & 23 deletions index.test.js

This file was deleted.

Loading

0 comments on commit f99680d

Please sign in to comment.