Skip to content

Commit 90c0047

Browse files
authored
Merge branch 'main' into feature/select_records
2 parents e53f191 + e261563 commit 90c0047

73 files changed

Lines changed: 3148 additions & 1052 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/chores.yml

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,29 @@ jobs:
1212
hub_version: ${{ steps.devhub-api-version.outputs.hub_version }}
1313
cci_version: ${{ steps.cci-api-version.outputs.cci_version }}
1414
steps:
15-
- uses: actions/checkout@v3
15+
- uses: actions/checkout@v4
1616
with:
1717
ref: main
18-
- name: Set up Python
19-
uses: actions/setup-python@v4
2018
- name: Get Dev Hub API Version
2119
id: devhub-api-version
2220
env:
2321
HUB_URL: ${{ format('{0}/services/data', secrets.SFDO_HUB_URL) }}
2422
run: |
2523
version=$(curl -s $HUB_URL | jq -r '.[-1] | .version')
26-
echo "::set-output name=hub_version::$version"
24+
echo "hub_version=$version" >> $GITHUB_OUTPUT
2725
- name: Get CURRENT_SF_API_VERSION
2826
id: cci-api-version
2927
run: |
3028
version=$(yq '.project.package.api_version' cumulusci/cumulusci.yml)
31-
echo "::set-output name=cci_version::$version"
29+
echo "cci_version=$version" >> $GITHUB_OUTPUT
3230
update_api_versions:
3331
runs-on: SFDO-Tooling-Ubuntu
3432
needs: check_api_versions
3533
if: ${{ needs.check_api_versions.outputs.hub_version != needs.check_api_versions.outputs.cci_version }}
3634
env:
3735
VERSION: ${{ needs.check_api_versions.outputs.hub_version }}
3836
steps:
39-
- uses: actions/checkout@v3
37+
- uses: actions/checkout@v4
4038
with:
4139
fetch-depth: 0
4240
ref: main
@@ -58,3 +56,15 @@ jobs:
5856
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5957
run: |
6058
gh pr create --fill --label 'auto-pr'
59+
test_sfdx_release_candidate:
60+
uses: ./.github/workflows/release_test_sfdx.yml
61+
with:
62+
sfdx-release-channel: stable-rc
63+
secrets:
64+
CUMULUSCI_ORG_packaging: ${{ secrets.CUMULUSCI_ORG_packaging }}
65+
CUMULUSCI_SERVICE_github: ${{ secrets.CUMULUSCI_SERVICE_github }}
66+
CCITEST_APP_KEY: ${{ secrets.CCITEST_APP_KEY }}
67+
SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
68+
SFDX_HUB_KEY: ${{ secrets.SFDX_HUB_KEY }}
69+
SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
70+
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}

.github/workflows/feature_test.yml

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,22 @@ jobs:
2222
uses: actions/checkout@v4
2323
with:
2424
fetch-depth: 1
25-
- name: Set up Python 3.8
25+
- name: Set up Python 3.11
2626
id: py
2727
uses: actions/setup-python@v4
2828
with:
29-
python-version: 3.8
30-
cache: pip
31-
cache-dependency-path: "requirements/*.txt"
29+
python-version: 3.11
30+
- name: Set up uv
31+
uses: SFDO-Tooling/setup-uv@main
32+
with:
33+
version: "0.5.0"
34+
enable-cache: true
3235
- name: Install dependencies
33-
run: pip install -r requirements_dev.txt
36+
run: uv sync --group docs
3437
- name: Build Docs
35-
run: make docs
38+
run: |
39+
cd docs
40+
uv run sphinx-build -b html . ./_build
3641
3742
unit_tests:
3843
name: "Unit tests: ${{ matrix.os }}-${{ matrix.python-version }}"
@@ -41,39 +46,39 @@ jobs:
4146
fail-fast: false
4247
matrix:
4348
os: [macos-latest, SFDO-Tooling-Ubuntu, SFDO-Tooling-Windows]
44-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
45-
exclude:
46-
- os: macos-latest
47-
python-version: 3.8
48-
include:
49-
- os: macos-13
50-
python-version: 3.8
49+
python-version: ["3.11", "3.12", "3.13"]
5150
steps:
5251
- uses: actions/checkout@v4
5352
- name: Set up Python
5453
uses: actions/setup-python@v4
5554
with:
5655
python-version: "${{ matrix.python-version }}"
57-
cache: pip
58-
cache-dependency-path: "requirements/*.txt"
56+
- name: Set up uv
57+
uses: SFDO-Tooling/setup-uv@main
58+
with:
59+
version: "0.5.0"
60+
enable-cache: true
5961
- name: Install dependencies
60-
run: pip install -r requirements_dev.txt
62+
run: uv sync -p ${{ matrix.python-version }}
6163
- name: Run Pytest
62-
run: pytest --cov-report= --cov=cumulusci
64+
run: uv run pytest --cov-report= --cov=cumulusci
6365

6466
robot_api:
6567
name: "Robot: No browser"
6668
runs-on: SFDO-Tooling-Ubuntu
6769
steps:
6870
- uses: actions/checkout@v4
69-
- name: Set up Python 3.8
71+
- name: Set up Python 3.11
7072
uses: actions/setup-python@v4
7173
with:
72-
python-version: 3.8
73-
cache: pip
74-
cache-dependency-path: "requirements/*.txt"
75-
- name: Install Python dependencies
76-
run: pip install -r requirements_dev.txt
74+
python-version: 3.11
75+
- name: Set up uv
76+
uses: SFDO-Tooling/setup-uv@main
77+
with:
78+
version: "0.5.0"
79+
enable-cache: true
80+
- name: Install dependencies
81+
run: uv sync -p 3.11
7782
- name: Install sfdx
7883
run: |
7984
mkdir sfdx
@@ -90,15 +95,15 @@ jobs:
9095
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
9196
- name: Run robot tests
9297
run: |
93-
coverage run --append $(which cci) task run robot \
98+
uv run cci task run robot \
9499
--org dev \
95100
-o name "CumulusCI" \
96101
-o suites cumulusci/robotframework/tests \
97102
-o include no-browser
98103
- name: Delete scratch org
99104
if: always()
100105
run: |
101-
cci org scratch_delete dev
106+
uv run cci org scratch_delete dev
102107
- name: Store robot results
103108
if: failure()
104109
uses: actions/upload-artifact@v4

.github/workflows/pre-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ jobs:
2222
runs-on: SFDO-Tooling-Ubuntu
2323
steps:
2424
- uses: actions/checkout@main
25-
- name: Set up Python 3.8
25+
- name: Set up Python 3.11
2626
uses: actions/setup-python@v4
2727
with:
28-
python-version: 3.8
28+
python-version: 3.11
2929
cache: pip
3030
- name: Install build tool
3131
run: python -m pip install hatch

.github/workflows/release.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ jobs:
1515
runs-on: SFDO-Tooling-Ubuntu
1616
steps:
1717
- uses: actions/checkout@main
18-
- name: Set up Python 3.8
18+
- name: Set up Python 3.11
1919
uses: actions/setup-python@v4
2020
with:
21-
python-version: 3.8
21+
python-version: 3.11
2222
cache: pip
2323
- name: Install build tools
2424
run: python -m pip install hatch tomli tomli-w
25-
- name: Pin dependencies
26-
run: python utility/pin_dependencies.py
2725
- name: Build source tarball and binary wheel
2826
run: hatch build -c
2927
- name: Upload to PyPI

.github/workflows/release_test.yml

Lines changed: 15 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,22 @@
11
name: Release Test
22

33
on:
4+
workflow_dispatch:
45
pull_request:
56
types: [opened, synchronize, reopened] # Default
6-
workflow_call:
7-
secrets:
8-
CUMULUSCI_ORG_packaging:
9-
required: true
10-
CUMULUSCI_SERVICE_github:
11-
required: true
12-
CCITEST_APP_KEY:
13-
required: true
14-
SFDX_CLIENT_ID:
15-
required: true
16-
SFDX_HUB_KEY:
17-
required: true
18-
SFDX_HUB_KEY_BASE64:
19-
required: true
20-
SFDX_HUB_USERNAME:
21-
required: true
22-
23-
env:
24-
CUMULUSCI_ORG_scratch: '{"config_file": "orgs/dev.json", "scratch": true}'
25-
CUMULUSCI_ORG_packaging: ${{ secrets.CUMULUSCI_ORG_packaging }}
26-
CUMULUSCI_SERVICE_github: ${{ secrets.CUMULUSCI_SERVICE_github }}
27-
GITHUB_APP_ID: 129383
28-
GITHUB_APP_KEY: ${{ secrets.CCITEST_APP_KEY }}
29-
SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
30-
SFDX_HUB_KEY: ${{ secrets.SFDX_HUB_KEY }}
31-
SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
32-
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
337

348
jobs:
359
test_artifacts:
3610
name: "Test Package Artifacts"
3711
runs-on: SFDO-Tooling-Ubuntu
3812
steps:
3913
- uses: actions/checkout@v3
40-
- name: Set up Python 3.8
14+
- name: Set up Python 3.11
4115
uses: actions/setup-python@v4
4216
with:
43-
python-version: 3.8
17+
python-version: 3.11
4418
cache: pip
45-
cache-dependency-path: "requirements/*.txt"
19+
cache-dependency-path: "pyproject.toml"
4620
- name: Install build tools
4721
run: pip install hatch
4822
- name: Test source tarball and binary wheel
@@ -67,45 +41,14 @@ jobs:
6741

6842
test_release:
6943
name: "Test Release Flows"
70-
runs-on: SFDO-Tooling-Ubuntu
71-
concurrency: release
72-
steps:
73-
- uses: actions/checkout@v3
74-
- name: Set up Python 3.8
75-
uses: actions/setup-python@v4
76-
with:
77-
python-version: 3.8
78-
cache: pip
79-
cache-dependency-path: "requirements/*.txt"
80-
- name: Install Python dependencies
81-
run: pip install -r requirements_dev.txt
82-
- name: Install sfdx
83-
run: |
84-
mkdir sfdx
85-
wget -qO- https://developer.salesforce.com/media/salesforce-cli/sfdx/channels/stable/sfdx-linux-x64.tar.xz | tar xJ -C sfdx --strip-components 1
86-
echo $(realpath sfdx/bin) >> $GITHUB_PATH
87-
- name: Authenticate Dev Hub
88-
run: |
89-
sfdx plugins --core
90-
echo $SFDX_HUB_KEY_BASE64 | base64 --decode > sfdx.key
91-
sfdx auth:jwt:grant --clientid $SFDX_CLIENT_ID --jwtkeyfile sfdx.key --username $SFDX_HUB_USERNAME --setdefaultdevhubusername -a hub
92-
- name: Check out CumulusCI-Test
93-
run: |
94-
git clone https://github.com/SFDO-Tooling/CumulusCI-Test
95-
- name: Run ci_feature flow
96-
run: |
97-
cd CumulusCI-Test
98-
coverage run --append --rcfile=../pyproject.toml --source=../cumulusci $(which cci) flow run ci_feature --org scratch --delete-org
99-
- name: Run ci_beta flow
100-
run: |
101-
cd CumulusCI-Test
102-
coverage run --append --rcfile=../pyproject.toml --source=../cumulusci $(which cci) flow run ci_beta --org scratch --delete-org
103-
- name: Run ci_master flow
104-
run: |
105-
cd CumulusCI-Test
106-
coverage run --append --rcfile=../pyproject.toml --source=../cumulusci $(which cci) flow run ci_master --org scratch --delete-org
107-
- name: Run release_beta flow
108-
run: |
109-
export SFDX_HUB_KEY="$(echo $SFDX_HUB_KEY_BASE64 | base64 --decode)"
110-
cd CumulusCI-Test
111-
coverage run --append --rcfile=../pyproject.toml --source=../cumulusci $(which cci) flow run release_beta --org packaging
44+
uses: ./.github/workflows/release_test_sfdx.yml
45+
with:
46+
sfdx-release-channel: stable
47+
secrets:
48+
CUMULUSCI_ORG_packaging: ${{ secrets.CUMULUSCI_ORG_packaging }}
49+
CUMULUSCI_SERVICE_github: ${{ secrets.CUMULUSCI_SERVICE_github }}
50+
CCITEST_APP_KEY: ${{ secrets.CCITEST_APP_KEY }}
51+
SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
52+
SFDX_HUB_KEY: ${{ secrets.SFDX_HUB_KEY }}
53+
SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
54+
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: SFDX Integration Test
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
sfdx-release-channel:
7+
required: false
8+
type: string
9+
default: stable
10+
secrets:
11+
CUMULUSCI_ORG_packaging:
12+
required: true
13+
CUMULUSCI_SERVICE_github:
14+
required: true
15+
CCITEST_APP_KEY:
16+
required: true
17+
SFDX_CLIENT_ID:
18+
required: true
19+
SFDX_HUB_KEY:
20+
required: true
21+
SFDX_HUB_KEY_BASE64:
22+
required: true
23+
SFDX_HUB_USERNAME:
24+
required: true
25+
26+
env:
27+
CUMULUSCI_ORG_scratch: '{"config_file": "orgs/dev.json", "scratch": true}'
28+
CUMULUSCI_ORG_packaging: ${{ secrets.CUMULUSCI_ORG_packaging }}
29+
CUMULUSCI_SERVICE_github: ${{ secrets.CUMULUSCI_SERVICE_github }}
30+
GITHUB_APP_ID: 129383
31+
GITHUB_APP_KEY: ${{ secrets.CCITEST_APP_KEY }}
32+
SFDX_CLIENT_ID: ${{ secrets.SFDX_CLIENT_ID }}
33+
SFDX_HUB_KEY: ${{ secrets.SFDX_HUB_KEY }}
34+
SFDX_HUB_KEY_BASE64: ${{ secrets.SFDX_HUB_KEY_BASE64 }}
35+
SFDX_HUB_USERNAME: ${{ secrets.SFDX_HUB_USERNAME }}
36+
37+
jobs:
38+
test_release:
39+
name: "Test SFDX CLI"
40+
runs-on: SFDO-Tooling-Ubuntu
41+
concurrency: release
42+
steps:
43+
- uses: actions/checkout@v4
44+
- name: Set up Python 3.11
45+
uses: actions/setup-python@v5
46+
with:
47+
python-version: 3.11
48+
cache: pip
49+
cache-dependency-path: "pyproject.toml"
50+
- name: Set up uv
51+
uses: SFDO-Tooling/setup-uv@main
52+
with:
53+
version: "0.5.0"
54+
enable-cache: true
55+
- name: Install Python dependencies
56+
run: uv sync
57+
- name: Install Salesforce CLI
58+
env:
59+
CHANNEL: ${{ inputs.sfdx-release-channel }}
60+
run: |
61+
mkdir sfdx
62+
wget -qO- https://developer.salesforce.com/media/salesforce-cli/sf/channels/$CHANNEL/sf-linux-x64.tar.xz | tar xJ -C sfdx --strip-components 1
63+
echo $(realpath sfdx/bin) >> $GITHUB_PATH
64+
- name: Authenticate Dev Hub
65+
run: |
66+
sf plugins --core
67+
echo $SFDX_HUB_KEY_BASE64 | base64 --decode > sfdx.key
68+
sf org login jwt --client-id $SFDX_CLIENT_ID --jwt-key-file sfdx.key --username $SFDX_HUB_USERNAME --set-default-dev-hub --alias hub
69+
- name: Check out CumulusCI-Test
70+
run: |
71+
git clone https://github.com/SFDO-Tooling/CumulusCI-Test
72+
- name: Run ci_feature flow
73+
run: |
74+
cd CumulusCI-Test
75+
uv run cci flow run ci_feature --org scratch --delete-org
76+
- name: Run ci_beta flow
77+
run: |
78+
cd CumulusCI-Test
79+
uv run cci flow run ci_beta --org scratch --delete-org
80+
- name: Run ci_master flow
81+
run: |
82+
cd CumulusCI-Test
83+
uv run cci flow run ci_master --org scratch --delete-org
84+
- name: Run release_beta flow
85+
run: |
86+
export SFDX_HUB_KEY="$(echo $SFDX_HUB_KEY_BASE64 | base64 --decode)"
87+
cd CumulusCI-Test
88+
uv run cci flow run release_beta --org packaging

0 commit comments

Comments
 (0)