Files
fflib-apex-extensions/.github/workflows/publish.yml
T
William Velzeboer 8a6e7a37aa Fix pipeline git push issue (#84)
* Fix pipeline git push issue

* Add Install instructions

* New package version 0.3.0-1-bugfix/pipelineFix2 created
2026-03-30 12:27:12 +01:00

105 lines
4.7 KiB
YAML

name: Publish a new package version
on:
pull_request_target:
branches:
- main
types:
- closed
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout main branch
uses: actions/checkout@v6
with:
ref: main
- 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: Get branch name
id: get-branch-name
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "Branch name: ${{ github.head_ref }}"
echo "BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_ENV
else
echo "Branch name: ${GITHUB_REF#refs/heads/}"
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
fi
- name: Fetching Latest Package Version Id
run: |
DATA=`sf package version list --packages "fflibApexExtensions" --target-dev-hub SFDX-ENV --branch $BRANCH_NAME --json`
LATEST_VERSION=`echo "$DATA" | jq '.result[-1]'`
VERSION=`echo "$LATEST_VERSION" | jq -r '.Version'`
VERSION_NAME=`echo "$LATEST_VERSION" | jq -r '.Name'`
VERSION_ID=`echo "$LATEST_VERSION" | jq -r '.SubscriberPackageVersionId'`
echo "Version: $VERSION"
echo "Version Name: $VERSION_NAME"
echo "Version ID: $VERSION_ID"
echo "PACKAGE_VERSION_ID=$VERSION_ID" >> "$GITHUB_ENV"
echo "PACKAGE_VERSION_NAME=$VERSION_ID" >> "$GITHUB_ENV"
echo "PACKAGE_VERSION=$VERSION" >> "$GITHUB_ENV"
- name: Promoting BETA Package Version
run: |
sf package version promote --package $PACKAGE_VERSION_ID --target-dev-hub SFDX-ENV --no-prompt
- name: Update package version
run: |
echo "Increasing package versionName"
NEW_PACKAGE_VERSION_NAME=`echo "ver $(echo "$PACKAGE_VERSION" | cut -d ' ' -f2 | cut -d '.' -f1).$(expr "$(echo "$PACKAGE_VERSION" | cut -d ' ' -f2 | cut -d '.' -f2)" + 1)"`
echo "Current package version name: $PACKAGE_VERSION"
echo "New package version name: $NEW_PACKAGE_VERSION_NAME"
cat sfdx-project.json | jq -r --arg VERSION "$NEW_PACKAGE_VERSION_NAME" '.packageDirectories |= map(select(.package == "fflibApexExtensions").versionName = $VERSION)' > tmp.json
mv tmp.json sfdx-project.json
echo "Increasing package versionNumber"
NEW_PACKAGE_VERSION=`echo "$(echo "$NEW_PACKAGE_VERSION_NAME" | cut -d ' ' -f2).0.NEXT"`
echo "Current package version: $PACKAGE_VERSION"
echo "New package version: $NEW_PACKAGE_VERSION"
cat sfdx-project.json | jq -r --arg VERSION "$NEW_PACKAGE_VERSION" '.packageDirectories |= map(select(.package == "fflibApexExtensions").versionNumber = $VERSION)' > tmp.json
mv tmp.json sfdx-project.json
echo "NEW_PACKAGE_VERSION_NAME=$NEW_PACKAGE_VERSION_NAME" >> "$GITHUB_ENV"
echo "NEW_PACKAGE_VERSION=$NEW_PACKAGE_VERSION" >> "$GITHUB_ENV"
- name: Appending to package version log
run: |
DT=$(date '+%d/%m/%Y %H:%M:%S');
echo "| $PACKAGE_VERSION | $PACKAGE_VERSION_ID | Created on $DT |" >> README.md
REPLACEMENT="sf package install --package $PACKAGE_VERSION_I0--wait=10 --target-org YOUR_ORG_ALIAS"
sed -i 's|^sf package install.*|sf package install --package '$PACKAGE_VERSION_ID' --wait=10 --target-org $YOUR_ORG_ALIAS|' README.md
sed -i 's|^Either clone the repository.*|Either clone the repository and import the package manually, use the [Package Installation URL](https://login.salesforce.com/packaging/installPackage.apexp?p0='$PACKAGE_VERSION_ID')|' README.md
git add README.md
git commit -am "Update Package Version Log with $PACKAGE_VERSION"
- name: Committing and pushing changes
run: |
git config --global user.name 'WimVelzeboer'
git config --global user.email 'wim@velzeboer.nl'
git add sfdx-project.json
git add README.md
git commit -am "Update package version to $NEW_PACKAGE_VERSION"
git tag -a "v$PACKAGE_VERSION" -m "Release Version $PACKAGE_VERSION" -m "" -m "Package Version Id: $PACKAGE_VERSION_ID"
git push origin main --tags