Migrate from SFDX to SF CLI commands. #151
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Unique name for this workflow | |
name: Salesforce DX PR (scratch org) | |
# Definition when the workflow should run | |
on: | |
pull_request: | |
types: [opened, edited, synchronize, reopened] | |
branches-ignore: | |
- prerelease/spring[2-9][0-9] | |
- prerelease/summer[2-9][0-9] | |
- prerelease/winter[2-9][0-9] | |
# Jobs to be executed | |
jobs: | |
formatting-and-linting: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout the code in the pull request | |
- name: 'Checkout source code' | |
uses: actions/checkout@v2 | |
# Cache node_modules to speed up the process | |
- name: Restore node_modules cache | |
id: cache-npm | |
uses: actions/cache@v1 | |
with: | |
path: node_modules | |
key: npm-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
npm-${{ env.cache-name }}- | |
npm- | |
# Install npm dependencies for Prettier and Jest | |
- name: 'Install npm dependencies' | |
if: steps.cache-npm.outputs.cache-hit != 'true' | |
run: npm ci | |
# Prettier formatting | |
- name: 'Code formatting verification with Prettier' | |
run: npm run prettier:verify | |
# Lint LWC | |
- name: 'Lint Lightning Web Components' | |
run: npm run lint | |
scratch-org-test: | |
runs-on: ubuntu-latest | |
needs: formatting-and-linting | |
steps: | |
# Install Salesforce CLI | |
- name: Install Salesforce CLI | |
run: | | |
wget https://developer.salesforce.com/media/salesforce-cli/sfdx-linux-amd64.tar.xz | |
mkdir sfdx-cli | |
tar xJf sfdx-linux-amd64.tar.xz -C sfdx-cli --strip-components 1 | |
./sfdx-cli/install | |
# Checkout the code in the pull request | |
- name: 'Checkout source code' | |
uses: actions/checkout@v2 | |
# Store secret for dev hub | |
- name: 'Populate auth file with DEVHUB_SFDX_URL secret' | |
shell: bash | |
run: 'echo ${{ secrets.DEVHUB_SFDX_URL}} > ./DEVHUB_SFDX_URL.txt' | |
# Authenticate dev hub | |
- name: 'Authenticate Dev Hub' | |
run: 'sf org login sfdx-url -f ./DEVHUB_SFDX_URL.txt -a devhub -d' | |
# Create scratch org | |
- name: 'Create scratch org' | |
run: 'sf org create scratch -f config/project-scratch-def.json -a scratch-org -s -d 1' | |
# Create dummy Experience site to provision Experience Cloud metadata | |
- name: 'Create dummy Experience site' | |
run: sf community create --name "Dummy" --templatename "Aloha" -p dummy | |
# Deploy standard metadata | |
- name: 'Deploy standard metadata' | |
run: sf project deploy start --metadata ApexClass --metadata Layout --metadata CustomObject --metadata LightningComponentBundle --metadata ManagedContentType --metadata CustomObject --metadata StaticResource --metadata CustomTab --metadata PermissionSet --metadata Flow | |
# Deploy Experience site metadata | |
- name: 'Deploy Experience site metadata' | |
run: sf project deploy start --metadata ApexPage --metadata CustomSite --metadata ExperienceBundle --metadata NavigationMenu --metadata Network --metadata Profile | |
# Assign permissionset to default user | |
- name: 'Assign permissionset to default user' | |
run: 'sf org assign permset -n LWR_Marketing_Builder' | |
# Housekeeping | |
- name: 'Delete scratch org' | |
if: always() | |
run: 'sf org delete scratch -p -o scratch-org' |