-
Notifications
You must be signed in to change notification settings - Fork 517
47 lines (43 loc) · 2.8 KB
/
deploy.and.test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
name: Create a Scratch Org, Push Source and Run Apex Tests
on:
push:
pull_request_target:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install SF CLI and authorize DevHub
uses: apex-enterprise-patterns/setup-sfdx@v2 #We're using a fork of https://github.com/sfdx-actions/setup-sfdx for safety
with:
sfdx-auth-url: ${{ secrets.DEVHUB_SFDXURL }}
# - name: Install the required plugins
# run: echo y | sf plugins install shane-sfdx-plugins
- name: Setup the config parameters needed
run: sf config set target-dev-hub SFDX-ENV --global #Even though the setup-sfdx action uses --setdefaultdevhubusername, it doesn't seem to stick since it uses --setdefaultusername so we brute force it here
- name: Create the scratch org
run: sf org create scratch --definition-file config/project-scratch-def.json --set-default --duration-days 1 --no-track-source --alias fflibapexcommon
# - name: Install required dependency frameworks
# run: sf shane github src install --convert --githubuser apex-enterprise-patterns --repo fflib-apex-mocks --path sfdx-source/apex-mocks
- name: Clone fflib-apex-mocks repo
run: mkdir temp && git clone https://github.com/apex-enterprise-patterns/fflib-apex-mocks.git "temp/fflib-apex-mocks"
- name: Deploy and compile the fflib-apex-mocks codebase
run: cd temp/fflib-apex-mocks && sf project deploy start --ignore-conflicts --target-org fflibapexcommon && cd ../..
- name: Deploy and compile the codebase
run: sf project deploy start
- name: Run the core framework tests
run: sf apex run test --wait 5
# Intentionally install the Sample Code after the core AEP Commons test pass succeeds so that we don't deploy anything in Sample Code
# that could mask a test failure. A much more involved solution would've been to do a workflow_dispatch to the samplecode project.
- name: Install sample code project to verify with
# run: sf shane github src install --convert --githubuser apex-enterprise-patterns --repo fflib-apex-common-samplecode --path sfdx-source/apex-common-samplecode
run: git clone https://github.com/apex-enterprise-patterns/fflib-apex-common-samplecode.git "temp/fflib-apex-common-samplecode" && cd temp/fflib-apex-common-samplecode && sf project deploy start --ignore-conflicts --target-org fflibapexcommon && cd ../..
- name: Run the core framework tests and the sample code project tests
run: sf apex run test --wait 5
- name: Destroy scratch org
run: sf org delete scratch --no-prompt
if: always()