Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ccoenraets committed Dec 12, 2018
0 parents commit 3d1509f
Show file tree
Hide file tree
Showing 140 changed files with 7,718 additions and 0 deletions.
168 changes: 168 additions & 0 deletions .circleci/config.yml
@@ -0,0 +1,168 @@
version: 2

# Defining default values for all jobs
defaults: &defaults
docker:
- image: circleci/node:8.9.4-browsers

jobs:
setup_dx:
# This command runs the preparation steps needed for the CI workflow:
#
# - Installation of the Salesforce CLI using npm
# - Install npm dependencies for LWC testing
# - Authentication of the DevHub
# - Creation of a scratch org
#
# While a scratch org isn't needed in all steps it's still part of the process. The reason for this is
# that we need to store the sfdx configuration files for it in the workspace, so that data can be shared
# across different workflow steps.
#
# Keep it simple!
<<: *defaults
steps:
- checkout
- run:
name: Install Salesforce DX and package dependencies
command: |
openssl enc -nosalt -aes-256-cbc -d -in .circleci/server.key.enc -out .circleci/server.key -base64 -K $DECRYPTION_KEY -iv $DECRYPTION_IV
export SFDX_USE_GENERIC_UNIX_KEYCHAIN=true
export SFDX_DOMAIN_RETRY=300
npm install
npm install sfdx-cli
node_modules/sfdx-cli/bin/run --version
node_modules/sfdx-cli/bin/run plugins --core
- run:
name: Authenticate DevHub
command: |
# if [[ $CIRCLE_BRANCH == prerelease* ]]; then
# Temporary using pre-release till R2b (Spring '19 GA Launch')
node_modules/sfdx-cli/bin/run force:auth:jwt:grant --clientid $CONSUMERKEY_PRERELEASE --jwtkeyfile .circleci/server.key --username $USERNAME_PRERELEASE --setdefaultdevhubusername -a HubOrg
# else
# node_modules/sfdx-cli/bin/run force:auth:jwt:grant --clientid $CONSUMERKEY --jwtkeyfile .circleci/server.key --username $USERNAME --setdefaultdevhubusername -a HubOrg
# fi
- run:
name: Define CI Org
# We define the to be used CI org. Based on the branch we either create a new scratch org
# or we use a project variable to authenticate a UAT or full-copy sandbox as target org.
#
# You can get the sfdxurl via sfdx force:org:display -u yourOrg --json --verbose from your local machine.
command: |
echo $SFDX_AUTH_PACKAGING > ~/auth.url
node_modules/sfdx-cli/bin/run force:auth:sfdxurl:store -s -a packagingorg -f ~/auth.url
node_modules/sfdx-cli/bin/run force:org:create -v HubOrg -s -f config/project-scratch-def.json -a ciorg -d 1
- persist_to_workspace:
# This is an important step. If we don't store the project data (cloned GitHub source and node_modules from the CLI installation)
# we'd have to re-run installation for every workflow step.
#
# Also this step is crucial as we use it to share sfdx config parameters between steps.
root: ~/
paths:
- .sfdx/*
- project/*
lint_lwc:
# This lints Lightning Web Components.
<<: *defaults
steps:
- attach_workspace:
at: ~/
- run:
name: Lint Lightning Web Components
command: |
npm run lint:lwc
# unit_test_lwc:
# This runs Jest unit tests for Lightning Web Components.
# <<: *defaults
# steps:
# - attach_workspace:
# at: ~/
# - run:
# name: Unit Test Lightning Web Components
# command: |
# npm run test:unit
deploy_source:
# This deploys the source to the ci scratch org.
<<: *defaults
steps:
- attach_workspace:
at: ~/
- run:
name: Push Source
command: |
node_modules/sfdx-cli/bin/run plugins:install salesforcedx@pre-release # Temporary using the pre-release plugin
node_modules/sfdx-cli/bin/run force:source:push -u ciorg
create_and_test_package:
<<: *defaults
steps:
- attach_workspace:
at: ~/
- run:
name: Create and install package
command: |
if [[ $SFDX_TEST_PACKAGING == "true" ]]; then
scripts/packagingDeployment.sh
fi
no_output_timeout: 15m

run_apex_tests:
<<: *defaults
steps:
- attach_workspace:
at: ~/
- run:
name: Run Apex Tests
command: |
node_modules/sfdx-cli/bin/run force:apex:test:run -u ciorg -c -r human
cleanup_scratch_org:
<<: *defaults
steps:
- attach_workspace:
at: ~/
- run:
name: Clean Up
command: |
node_modules/sfdx-cli/bin/run force:org:delete -u ciorg -p
workflows:
version: 2
build_and_test:
jobs:
- setup_dx
- lint_lwc:
requires:
- setup_dx
filters:
branches:
ignore: master
# - unit_test_lwc:
# requires:
# - lint_lwc
# filters:
# branches:
# ignore: master
- deploy_source:
requires:
- lint_lwc
filters:
branches:
ignore: master
- create_and_test_package:
requires:
- setup_dx
filters:
branches:
only: master
- run_apex_tests:
requires:
- deploy_source
filters:
branches:
ignore: master
- cleanup_scratch_org:
requires:
- setup_dx
- deploy_source
- create_and_test_package
- run_apex_tests
- lint_lwc
# - unit_test_lwc
35 changes: 35 additions & 0 deletions .circleci/server.key.enc
@@ -0,0 +1,35 @@
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
11 changes: 11 additions & 0 deletions .editorconfig
@@ -0,0 +1,11 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

[*.{json,yml}]
indent_size = 2
6 changes: 6 additions & 0 deletions .eslintignore
@@ -0,0 +1,6 @@
**/lwc/**/*.css
**/lwc/**/*.html
**/lwc/**/*.json
**/lwc/**/*.svg
**/lwc/**/*.xml
.sfdx
16 changes: 16 additions & 0 deletions .forceignore
@@ -0,0 +1,16 @@
# List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status
# More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm
#

# Standard metadata
package.xml
**appMenu
**appSwitcher
**objectTranslations
**profiles
**settings

**/jsconfig.json
**/.eslintrc.json
**/__test__/**

11 changes: 11 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,11 @@
## Details


## Does this PR introduce a new sample?
Does this PR introduce a new Lightning web component sample?
* [ ] Yes
* [ ] No

If yes, please ensure that new samples adhere to 'Documentation Guidelines' in CONTRIBUTING.md


16 changes: 16 additions & 0 deletions .gitignore
@@ -0,0 +1,16 @@
.classpath
.DS_Store
.idea
.project
.salesforce
.settings
.sfdx/
.tern-project
.vscode/
!.vscode/extensions.json
!.vscode/settings.json
assets/
!assets/server.key.enc
node_modules/
selenium-client-jars/
test/artifacts/
5 changes: 5 additions & 0 deletions .prettierignore
@@ -0,0 +1,5 @@
**/lwc/**/*.css
**/lwc/**/*.html
**/lwc/**/*.svg
**/lwc/**/*.xml
.sfdx
5 changes: 5 additions & 0 deletions .prettierrc
@@ -0,0 +1,5 @@
{
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "all"
}
115 changes: 115 additions & 0 deletions CONTRIBUTING.md
@@ -0,0 +1,115 @@
## Documentation Guidelines for Samples

These samples are used for on-boarding to Lightning Web Components. Each sample must have a clear learning objective.

* Use JSDoc format for classes, public properties and methods, and functions.
* Document the learning objective on the JavaScript class.
* Spell check your comments and code.
* Err on the side of being verbose.

It's strongly recommended to configure your editor as described below. It will assist with these requirements.

## Prerequisites

Configure the project using the steps in the root [README](README.md). You must authenticate to your org and create a scratch org to run the visual regression tests.

## System Requirements

* [Node 8.x](https://nodejs.org/en/)
* NPM 5.x

## Editor Configurations

Configuring your editor to use our lint and code style rules to simplify your development experience and expedite the pull request review.

### editorconfig

[Configure your editor](http://editorconfig.org/#download) to use our editor configurations.

### Spell Checker

Configure your editor to use your favorite spell checker.

## Useful Development Workflow Commands

### Install Dependencies

```bash
npm install
```

#### Lint Your Changes

```bash
npm run lint
```

#### Test Your Changes

Changes must pass functional unit tests and visual regression tests. Visual regression tests require a scratch org.

```bash
npm run test
```

## Git Workflow

The process of submitting a pull request is straightforward, and
follows the same pattern each time:

1. [Clone the repository](#clone-the-repository)
2. [Create a feature branch](#create-a-feature-branch)
3. [Make your changes](#make-your-changes)
4. [Merge](#merge)
5. [Create a pull request](#create-a-pull-request)

### Clone the Repository

```bash
git clone git@github.com:forcedotcom/dreamhouse-lwc.git
```

### Create a Feature Branch

```bash
git checkout master
git pull origin master
git checkout -b <name-of-the-feature>
```

### Make Your Changes

Modify the files, lint, build, push, test, and eventually commit your code using the following command:

```bash
git add <path/to/file/to/commit>
git commit
git push origin HEAD
```

Commit your changes using a descriptive commit message. The above commands
commit the files into your feature branch. Keep pushing new changes into the
same branch until you're ready to create a pull request.

### Merge

Sometimes your feature branch gets stale with respect to the master branch,
and requires newer commits on master to be merged into your branch. The
following steps can help:

```bash
git checkout master
git pull
git checkout <feature-branch>
git merge master
```

Don't worry about creating extra merge commits in your pull request. When your
pull request is merged, all commits on the branch are consolidated down to a
single commit.

### Create a Pull Request

If you've never created a pull request before, follow [these
instructions](https://help.github.com/articles/creating-a-pull-request/).
Pull request examples can be found [here](https://github.com/forcedotcom/dreamhouse-lwc/pulls).

0 comments on commit 3d1509f

Please sign in to comment.