Skip to content

Commit

Permalink
Merge pull request #354 from FormidableLabs/ci-provenance
Browse files Browse the repository at this point in the history
GitHub Actions release workflow addition
  • Loading branch information
paulmarsicloud committed May 18, 2023
2 parents 15573cc + 9b90968 commit b118208
Show file tree
Hide file tree
Showing 8 changed files with 1,502 additions and 90 deletions.
11 changes: 11 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
"changelog": [
"@svitejs/changesets-changelog-github-compact",
{
"repo": "FormidableLabs/webpack-dashboard"
}
],
"access": "public",
"baseBranch": "master"
}
5 changes: 5 additions & 0 deletions .changeset/plenty-spiders-sip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"webpack-dashboard": patch
---

Adding GitHub release workflow
38 changes: 38 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release
on:
push:
branches:
- master
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
issues: write
repository-projects: write
deployments: write
packages: write
pull-requests: write
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v3
with:
node-version: 18

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Check CI
run: yarn check-ci

- name: PR or Publish
id: changesets
uses: changesets/action@v1
with:
version: yarn changeset version
publish: yarn changeset publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
76 changes: 76 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Contributing to Webpack-Dashboard

## Contributor Covenant Code of Conduct

### Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

### Our Standards

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

### Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

### Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

### Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

### Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
107 changes: 50 additions & 57 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,76 +1,69 @@
# Contributing to Webpack-Dashboard
## Development

## Contributor Covenant Code of Conduct
### Installing dependencies

### Our Pledge
```sh
yarn install
```

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
### Testing

### Our Standards
You will find tests for files colocated with `*.test.ts` suffixes. Whenever making any changes, ensure that all existing tests pass by running `yarn test`.

Examples of behavior that contributes to creating a positive environment
include:
If you are adding a new feature or some extra functionality, you should also make sure to accompany those changes with appropriate tests.

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
### Linting and Formatting

Examples of unacceptable behavior by participants include:
Before committing any changes, be sure to do `yarn lint`; this will lint all relevant files using [ESLint](http://eslint.org/) and report on any changes that you need to make.

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Before submitting a PR...

### Our Responsibilities
Thanks for taking the time to help us make webpack-dashboard even better! Before you go ahead and submit a PR, make sure that you have done the following:

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
- Run the tests using `yarn test`
- Run lint and flow using `yarn lint`
- Run `yarn changeset`

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
### Using changesets

### Scope
Our official release path is to use automation to perform the actual publishing of our packages. The steps are to:

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
1. A human developer adds a changeset. Ideally this is as a part of a PR that will have a version impact on a package.
2. On merge of a PR our automation system opens a "Version Packages" PR.
3. On merging the "Version Packages" PR, the automation system publishes the packages.

### Enforcement
Here are more details:

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
### Add a changeset

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
When you would like to add a changeset (which creates a file indicating the type of change), in your branch/PR issue this command:

### Attribution
```sh
$ yarn changeset
```

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
to produce an interactive menu. Navigate the packages with arrow keys and hit `<space>` to select 1+ packages. Hit `<return>` when done. Select semver versions for packages and add appropriate messages. From there, you'll be prompted to enter a summary of the change. Some tips for this summary:

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
1. Aim for a single line, 1+ sentences as appropriate.
2. Include issue links in GH format (e.g. `#123`).
3. You don't need to reference the current pull request or whatnot, as that will be added later automatically.

After this, you'll see a new uncommitted file in `.changesets` like:

```sh
$ git status
# ....
Untracked files:
(use "git add <file>..." to include in what will be committed)
.changeset/flimsy-pandas-marry.md
```

Review the file, make any necessary adjustments, and commit it to source. When we eventually do a package release, the changeset notes and version will be incorporated!

### Creating versions

On a merge of a feature PR, the changesets GitHub action will open a new PR titled `"Version Packages"`. This PR is automatically kept up to date with additional PRs with changesets. So, if you're not ready to publish yet, just keep merging feature PRs and then merge the version packages PR later.

### Publishing packages

On the merge of a version packages PR, the changesets GitHub action will publish the packages to npm.
21 changes: 2 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,26 +158,9 @@ $ cross-env EXAMPLE=tree-shaking WEBPACK_MODE=production \

Then just run `yarn dev` to get up and running. PRs are very much appreciated!

### Publishing
## Contributing

When it comes time to publish a new version of `webpack-dashboard` to `npm`, authorized users can take the following steps:

```sh
# Ensure build passes all CI checks.
git pull origin master
yarn check-ci

# Version the change. We use semantic versioning.
yarn version --<major | minor | patch>

# Publish to npm.
yarn publish

# Commit the release tag to source.
git push && git push --tags
```

Please also be sure to update `CHANGELOG.md` with release notes and draft the release on GitHub. We loosely follow the [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) spec with categories for `Features`, `Bugs`, `Tests`, `Docs`, and `Security`. All releases should also include `Migration Instructions` for adopting the new release.
Please see our [contributing guide](CONTRIBUTING.MD).

#### Credits

Expand Down
7 changes: 6 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,12 @@
"bugs": {
"url": "https://github.com/FormidableLabs/webpack-dashboard/issues"
},
"homepage": "https://github.com/FormidableLabs/webpack-dashboard#readme",
"homepage": "https://github.com/FormidableLabs/webpack-dashboard",
"peerDependencies": {
"webpack": "*"
},
"dependencies": {
"@changesets/cli": "^2.26.1",
"chalk": "^4.1.1",
"commander": "^8.0.0",
"cross-spawn": "^7.0.3",
Expand All @@ -51,6 +52,7 @@
"socket.io-client": "^4.1.3"
},
"devDependencies": {
"@svitejs/changesets-changelog-github-compact": "^0.1.1",
"babel-eslint": "^10.1.0",
"chai": "^4.3.4",
"codecov": "^3.8.2",
Expand All @@ -73,5 +75,8 @@
"webpack": "^5.44.0",
"webpack-cli": "^4.7.2",
"webpack-stats-plugin": "^1.0.3"
},
"publishConfig": {
"provenance": true
}
}
Loading

0 comments on commit b118208

Please sign in to comment.