90 lines
3.1 KiB
YAML
90 lines
3.1 KiB
YAML
name: Build and Test
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
types: [opened, synchronize, reopened]
|
|
|
|
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 Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
|
|
- name: Install Salesforce CLI with NPM
|
|
run: npm install @salesforce/cli --global
|
|
|
|
- name: Authorize with the dev hub
|
|
run: echo "${{ secrets.SFDX_AUTH_URL }}" | sf org login sfdx-url --alias SFDX-ENV --set-default-dev-hub --sfdx-url-stdin
|
|
|
|
- name: Setup the config parameters needed
|
|
run: |
|
|
sf config set target-dev-hub SFDX-ENV --global
|
|
|
|
- name: Setup Git Configuration
|
|
run: |
|
|
git config --global user.name 'WimVelzeboer'
|
|
git config --global user.email 'wim@velzeboer.nl'
|
|
|
|
- name: Fetch required dependency framework fflib-apex-mocks
|
|
run: |
|
|
mkdir ./temp
|
|
cd ./temp
|
|
git clone https://github.com/apex-enterprise-patterns/fflib-apex-mocks.git
|
|
cd ..
|
|
cp -R ./temp/fflib-apex-mocks/sfdx-source/apex-mocks ./sfdx-source/
|
|
|
|
- name: Fetch required dependency framework fflib-apex-common
|
|
run: |
|
|
cd ./temp
|
|
git clone https://github.com/apex-enterprise-patterns/fflib-apex-common.git
|
|
cd ..
|
|
cp -R ./temp/fflib-apex-common/sfdx-source/apex-common ./sfdx-source/
|
|
|
|
- name: Get branch name
|
|
id: get-branch-name
|
|
run: |
|
|
if [ "${{ github.event_name }}" == "pull_request" ]; then
|
|
echo "BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Generate Package Version
|
|
run: |
|
|
echo "Creating new BETA package version"
|
|
OUTPUT=`sf package version create --installation-key-bypass --package "fflibApexExtensions" --code-coverage -w 30 --definition-file config/project-scratch-def.json --branch ${{ steps.get-branch-name.outputs.BRANCH_NAME }}`
|
|
echo "$OUTPUT"
|
|
[ $? -eq 0 ] && echo "successful" || exit 1
|
|
|
|
STRING=`echo "$OUTPUT" | grep 'Package Version Id:'`
|
|
VERSION_ID="${STRING##*: }"
|
|
VERSION=`grep $VERSION_ID sfdx-project.json | cut -d "@" -f2 | cut -d "\"" -f1`
|
|
echo "Created BETA package version: $VERSION with Id: $VERSION_ID"
|
|
|
|
git commit -am "New package version $VERSION created"
|
|
|
|
echo "PACKAGE_ID=$VERSION_ID" >> "$GITHUB_ENV"
|
|
echo "PACKAGE_VERSION=$VERSION" >> "$GITHUB_ENV"
|
|
|
|
- name: Appending to package version log
|
|
run: |
|
|
DT=$(date '+%d/%m/%Y %H:%M:%S');
|
|
echo "|$PACKAGE_VERSION (BETA) | $PACKAGE_ID | Created on $DT |" >> README.md
|
|
git add README.md
|
|
git commit -am "Update Package Version Log with $PACKAGE_VERSION-Beta"
|
|
|
|
- name: Push changes to GIT
|
|
run: |
|
|
git push |