diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index fde45fc6e9..0fc625ee47 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,8 +1,6 @@ name: Unit Tests and Accessibility CI on: - push: - branches: [ master ] pull_request: branches: [ master ] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000000..cc5d11b308 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,38 @@ +name: Release +on: + push: + branches: + - master + +jobs: + release: + name: Release + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [12.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Install dependencies + run: npm ci + - name: Build + run: npm run build + - name: Build playground + run: npm run playground + - name: Build documentation + run: npm run docs + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm run semantic-release + - name: Publish documentation to github pages + uses: JamesIves/github-pages-deploy-action@3.5.9 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: dist diff --git a/.releaserc.js b/.releaserc.js new file mode 100644 index 0000000000..442440c57b --- /dev/null +++ b/.releaserc.js @@ -0,0 +1,17 @@ +module.exports = { + plugins: [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + ["@semantic-release/changelog", { + "changelogFile": "CHANGELOG.md", + }], + "@semantic-release/npm", + ["@semantic-release/git", { + "assets": ["package.json", "CHANGELOG.md"], + "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + }], + '@semantic-release/github', + ], + branch: 'master', + branches: ['master'] +}; diff --git a/README.md b/README.md index 327430a393..c044a8923b 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ A JavaScript library of Web Components following Spectrum design patterns. +# Important +Please follow [Angular Commit Message Conventions](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines). To easily comply is recommended to use [cz-cli](https://github.com/commitizen/cz-cli). + ## Showcase #### [Component Examples](http://opensource.adobe.com/coral-spectrum/dist/examples) @@ -16,23 +19,23 @@ Code can be shared by copy pasting the URL. The playground is sandboxed to preve ## Spectrum -The current default theme is is an implementation of the [Spectrum](https://spectrum.adobe.com) design -specifications, Adobe’s design system. Spectrum provides elements and tools to help product teams work more +The current default theme is is an implementation of the [Spectrum](https://spectrum.adobe.com) design +specifications, Adobe’s design system. Spectrum provides elements and tools to help product teams work more efficiently, and to make Adobe’s applications more cohesive. - -Coral Spectrum leverages the [Spectrum CSS](https://github.com/adobe/spectrum-css) framework to style -components including the [Spectrum SVG icons](https://spectrum.adobe.com/page/icons). + +Coral Spectrum leverages the [Spectrum CSS](https://github.com/adobe/spectrum-css) framework to style +components including the [Spectrum SVG icons](https://spectrum.adobe.com/page/icons). ## Angular, React, Vue.js compatibility -Our vision is to create consistent Adobe experiences by providing a complete, easy to use library of HTML components +Our vision is to create consistent Adobe experiences by providing a complete, easy to use library of HTML components compatible with [major frameworks](https://custom-elements-everywhere.com/). -To reach the goal, Coral Spectrum derives from [Custom Elements v1](https://html.spec.whatwg.org/multipage/custom-elements.html) with -[native support](https://caniuse.com/#feat=custom-elementsv1) thanks to broad collaboration between browser vendors. -The use of custom elements gives us the ability to hide many implementation details from the consumer, allowing much -more freedom to change the underlying markup that supports those elements. -This makes the exposed API smaller and more explicit, resulting in a lower risk of updates to Coral Spectrum needing to +To reach the goal, Coral Spectrum derives from [Custom Elements v1](https://html.spec.whatwg.org/multipage/custom-elements.html) with +[native support](https://caniuse.com/#feat=custom-elementsv1) thanks to broad collaboration between browser vendors. +The use of custom elements gives us the ability to hide many implementation details from the consumer, allowing much +more freedom to change the underlying markup that supports those elements. +This makes the exposed API smaller and more explicit, resulting in a lower risk of updates to Coral Spectrum needing to introduce breaking changes. ## Browser support @@ -73,15 +76,15 @@ For mobile, Spectrum has a larger scale that enables larger tap targets on all c ## Built-in Accessibility and Keyboard support -Having an inaccessible application can mean thousands of dollars of fines if you land a government contract. -It also means alienating an entire segment of society by making your application completely unusable to them. +Having an inaccessible application can mean thousands of dollars of fines if you land a government contract. +It also means alienating an entire segment of society by making your application completely unusable to them. To help you avoid this, we’ve made it a rule that every Coral Spectrum component should be accessible. ## Internationalization support - -Coral Spectrum provides a robust internal system for internationalization of its strings. + +Coral Spectrum provides a robust internal system for internationalization of its strings. This is done via an internal Adobe process. - + Supported languages are : Language family | Language tag | Language variant @@ -110,7 +113,7 @@ Turkish | tr-TR | Standard Turkish ### Easiest way via a CDN -The easiest way to consume Coral Spectrum is to use a CDN e.g. copy these lines into your html file. +The easiest way to consume Coral Spectrum is to use a CDN e.g. copy these lines into your html file. ```html
@@ -120,8 +123,8 @@ The easiest way to consume Coral Spectrum is to use a CDN e.g. copy these lines - -``` +