Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
ff9469f
Update .gitignore to ignore files generated by other editors
NQuinn27 Dec 20, 2024
946de9d
Update matchfile for new match repo
NQuinn27 Dec 20, 2024
320413a
Add match key file to gitignore
NQuinn27 Dec 20, 2024
16fc04e
Use default branch
NQuinn27 Dec 20, 2024
50a795b
Add http cloning
NQuinn27 Jan 14, 2025
f92b615
Update auth
NQuinn27 Jan 14, 2025
d1aff8c
Remove puts
NQuinn27 Jan 14, 2025
2eb0c09
Use main branch
NQuinn27 Jan 14, 2025
1b22c95
Setup for readonly
NQuinn27 Jan 14, 2025
a71d5a8
Update workflows
NQuinn27 Jan 14, 2025
24dfe02
Add gitlab creds
NQuinn27 Jan 14, 2025
248d6d1
Remove private key
NQuinn27 Jan 14, 2025
bc737ca
Remove private key variable
NQuinn27 Jan 14, 2025
0083619
Move auth logic
NQuinn27 Jan 14, 2025
193ccac
Cleanup
NQuinn27 Jan 14, 2025
790f3e7
Formatting
NQuinn27 Jan 14, 2025
e09fca5
fix: Align accountNumberLast4Digits with Android (#1066)
NQuinn27 Dec 21, 2024
22590dd
Release 2.33.1 (#1067)
primer-security-integrations Dec 22, 2024
f5876df
ci(deps): bump ruby/setup-ruby from 1.202.0 to 1.207.0 (#1072)
dependabot[bot] Jan 7, 2025
fe5b706
ci(deps): bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 (#…
dependabot[bot] Jan 7, 2025
b6b16ab
ci(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0 (#1068)
dependabot[bot] Jan 7, 2025
3f953ae
ci(deps): bump ncipollo/release-action from 1.14.0 to 1.15.0 (#1079)
dependabot[bot] Jan 14, 2025
f1e45c8
ci(deps): bump actions/upload-artifact from 4.5.0 to 4.6.0 (#1080)
dependabot[bot] Jan 14, 2025
dfa2038
feat: Update to API version 2.4 (#1069)
borisprimer Jan 15, 2025
01c5ccb
chore: Update phrase config file (#1084)
borisprimer Jan 16, 2025
95fa38e
chore: Translation Update (#1085)
primer-security-integrations Jan 16, 2025
8f542e2
chore: Project cleanup (#1088)
NQuinn27 Jan 17, 2025
a793e7f
chore: Skip swiftlint on CI (#1093)
NQuinn27 Jan 22, 2025
3b728a4
ci(deps): bump ruby/setup-ruby from 1.207.0 to 1.213.0 (#1089)
dependabot[bot] Jan 22, 2025
1dd05c1
Release 2.34.0 (#1094)
primer-security-integrations Jan 24, 2025
7ba8b11
fix: ACC-4826 Update 3DS SDK Keys for Non-Production Environments (#1…
borisprimer Jan 31, 2025
0f40b61
feat: add missing localizations (#1097)
FlaviuExtPrimer Feb 3, 2025
8510308
Release 2.35.0 (#1102)
primer-security-integrations Feb 4, 2025
b4ee247
ci(deps): bump actions/setup-node from 4.1.0 to 4.2.0 (#1100)
dependabot[bot] Feb 4, 2025
7ad9837
ci(deps): bump ruby/setup-ruby from 1.213.0 to 1.215.0 (#1099)
dependabot[bot] Feb 4, 2025
d114c0b
chore: Add new languages to DebugApp (#1101)
borisprimer Feb 5, 2025
4e88c92
chore: update pods and phrase_config (#1103)
borisprimer Feb 5, 2025
88565ca
ci(deps): bump ruby/setup-ruby from 1.215.0 to 1.218.0 (#1111)
dependabot[bot] Feb 10, 2025
86e24f4
fix: Card Form for RTL languages (#1110)
borisprimer Feb 10, 2025
21330ce
chore: Add a view appear event for CVV recapture (#1107)
borisprimer Feb 10, 2025
f205931
chore: Align cardholder name validation with Web (#1108)
borisprimer Feb 10, 2025
71a2efa
chore: Card expiration date placeholder update (#1106)
borisprimer Feb 11, 2025
f66d7b2
fix: Update /payment and /resume timeouts to 60s (#1112)
NQuinn27 Feb 11, 2025
e06ea51
Release 2.35.1 (#1113)
primer-security-integrations Feb 11, 2025
e325833
chore: swiftlint --fix --format (#1114)
borisprimer Feb 14, 2025
dcf52f1
chore: Remove Package.resolved fromm cache (#1116)
NQuinn27 Feb 20, 2025
7bc1586
ci(deps): bump ruby/setup-ruby from 1.218.0 to 1.221.0 (#1115)
dependabot[bot] Feb 20, 2025
9562d6e
chore: fix klarna emd (#1117)
NQuinn27 Feb 20, 2025
9355088
fix: Fix Additional Fees text in Drop-in (#1118)
NQuinn27 Feb 25, 2025
a680e0e
fix: Record retry event only if we have one or more retries (#1123)
borisprimer Feb 25, 2025
23c6dcc
fix: Do not track image failures in analytics (#1122)
NQuinn27 Feb 25, 2025
9874586
ci(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1 (#1121)
dependabot[bot] Feb 25, 2025
24f0f3d
ci(deps): bump ncipollo/release-action from 1.15.0 to 1.16.0 (#1120)
dependabot[bot] Feb 25, 2025
3a7d0f5
Release 2.35.2 (#1124)
primer-security-integrations Feb 26, 2025
decd29a
chore: Upgrade workflow versions (#1126)
NQuinn27 Feb 26, 2025
b67b976
Remove private key
NQuinn27 Jan 14, 2025
2215699
Remove SSH Key install
NQuinn27 Feb 27, 2025
ff89ab2
Merge branch 'master' into nq/update-match
NQuinn27 Feb 27, 2025
4dd7951
Try without keychain
NQuinn27 Mar 4, 2025
feecefe
Add username
NQuinn27 Mar 4, 2025
deef397
Hardcode username
NQuinn27 Mar 4, 2025
288bb7b
Print encoded creds
NQuinn27 Mar 4, 2025
a4ac864
Explicit macos15
NQuinn27 Mar 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/actions/appetize-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ inputs:
stripe-publishable-key:
description: 'Stripe publishable key'
required: true
gitlab-username:
description: 'GitLab username'
required: true
gitlab-password:
description: 'GitLab password'
required: true
outputs:
appetize-url:
description: Appetize URL
Expand Down Expand Up @@ -103,6 +109,8 @@ runs:
BUILD_TYPE: ${{ inputs.build_type }}
GITHUB_RUN_ID: ${{ inputs.github-run-id }}
PR_NUMBER: ${{ inputs.pr-number}}
GITLAB_USERNAME: ${{ inputs.gitlab-username }}
GITLAB_PASSWORD: ${{ inputs.gitlab-password }}
- name: Create Slack Success Summary Report
if: ${{ success() }}
shell: bash
Expand Down
28 changes: 13 additions & 15 deletions .github/actions/sdk-tests/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'Run SDK tests'
description: 'Test the SDK using SPM'
name: "Run SDK tests"
description: "Test the SDK using SPM"
inputs:
ssh-private-key:
description: SSH private key
Expand All @@ -10,9 +10,6 @@ inputs:
match-password:
description: Match password
required: true
match-git-private-key:
description: Match git private key
required: true
fastlane-password:
description: Fastlane password
required: true
Expand All @@ -22,7 +19,7 @@ inputs:
fastlane-test-lane:
description: The fastlane test lane to run
required: false
default: test_sdk
default: test_sdk
match-keychain-name:
description: Match keychain name
required: true
Expand All @@ -38,24 +35,24 @@ inputs:
package-swift:
description: The swift package file to use, if not default
required: false
gitlab-username:
description: "GitLab username"
required: true
gitlab-password:
description: "GitLab password"
required: true

runs:
using: "composite"
steps:
- name: Select Xcode Version
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
with:
xcode-version: '16.2.0'
- name: Install SSH key
uses: shimataro/ssh-key-action@d4fffb50872869abe2d9a9098a6d9c5aa7d16be4 #v2.7.0
with:
key: ${{ inputs.ssh-private-key }}
name: id_rsa_github_actions
known_hosts: ${{ inputs.known-hosts }}
xcode-version: "16.2.0"
- uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0
with:
ssh-private-key: ${{ inputs.ssh-private-key }}
- uses: ruby/setup-ruby@d4526a55538b775af234ba4af27118ed6f8f6677 # v1.172.0
- uses: ruby/setup-ruby@d4526a55538b775af234ba4af27118ed6f8f6677 # v1.172.0
with:
ruby-version: "3.2"
bundler-cache: true
Expand All @@ -71,12 +68,13 @@ runs:
bundle exec fastlane ${{ inputs.fastlane-test-lane }}
env:
MATCH_PASSWORD: ${{ inputs.match-password }}
MATCH_GIT_PRIVATE_KEY: ${{ inputs.ssh-private-key }}
FASTLANE_PASSWORD: ${{ inputs.fastlane-password }}
FASTLANE_SESSION: ${{ inputs.fastlane-session }}
MATCH_KEYCHAIN_NAME: ${{ inputs.match-keychain-name }}
MATCH_KEYCHAIN_PASSWORD: ${{ inputs.match-password }}
SOURCE_BRANCH: ${{ inputs.source-branch }}
GITLAB_USERNAME: ${{ inputs.gitlab-username }}
GITLAB_PASSWORD: ${{ inputs.gitlab-password }}
- name: Prepare coverage reports
shell: bash
if: ${{ inputs.sdk-name != '' }}
Expand Down
25 changes: 17 additions & 8 deletions .github/workflows/build-test-upload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:

jobs:
unit-tests-sdk:
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 20
name: "Unit Tests - SDK"
steps:
Expand All @@ -30,16 +30,17 @@ jobs:
ssh-private-key: ${{ secrets.SSH_KEY }}
known-hosts: ${{ secrets.KNOWN_HOSTS }}
match-password: ${{ secrets.MATCH_PASSWORD }}
match-git-private-key: ${{ secrets.FASTLANE_PASSWORD }}
fastlane-session: ${{ secrets.FASTLANE_SESSION }}
fastlane-password: ${{ secrets.FASTLANE_PASSWORD }}
match-keychain-name: ${{ secrets.MATCH_KEYCHAIN_NAME }}
match-keychain-password: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}
sdk-name: sdk

optional-sdk-tests:
name: Optional SDK Tests
runs-on: macos-latest-large
runs-on: macos-15-large
strategy:
max-parallel: 3
matrix:
Expand Down Expand Up @@ -70,9 +71,11 @@ jobs:
match-keychain-password: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
sdk-name: ${{ matrix.package-swift.name }}
package-swift: ${{ matrix.package-swift.file }}
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}

unit-tests-debug-app:
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 20
name: "Unit Tests - Debug App"
steps:
Expand All @@ -96,11 +99,13 @@ jobs:
match-keychain-name: ${{ secrets.MATCH_KEYCHAIN_NAME }}
match-keychain-password: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
fastlane-test-lane: test_debug_app
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}


spm-build:
needs: unit-tests-debug-app
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 20
name: "Build app with SPM Integration"
steps:
Expand Down Expand Up @@ -140,13 +145,15 @@ jobs:
MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }}
MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
SOURCE_BRANCH: ${{ github.head_ref }}
GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }}
GITLAB_PASSWORD: ${{ secrets.GITLAB_PASSWORD }}

sonarcloud:
needs:
- unit-tests-sdk
- optional-sdk-tests
name: SonarCloud
runs-on: macos-latest
runs-on: macos-15
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
Expand All @@ -168,7 +175,7 @@ jobs:
needs:
- unit-tests-sdk
- unit-tests-debug-app
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 45
name: "Run Critical Path UI Tests"
steps:
Expand Down Expand Up @@ -219,7 +226,7 @@ jobs:
needs:
- unit-tests-sdk
- unit-tests-debug-app
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 45
name: "Build and upload app to Appetize"
steps:
Expand Down Expand Up @@ -252,6 +259,8 @@ jobs:
slack-reporter-token: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}
github-run-id: ${{ github.run_id }}
stripe-publishable-key: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}
- uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e #v3.1.0
if: ${{ success() }}
id: find_comment
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pod_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
pod-lint:
if: ${{ github.event.pull_request.base.ref == 'master' }}
runs-on: macos-latest
runs-on: macos-15
name: "Pod lint"
strategy:
fail-fast: false
Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/test-and-code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:

jobs:
sdk-unit-tests:
runs-on: macos-latest-large
runs-on: macos-15-large
timeout-minutes: 20
name: "SDK - Unit Tests"
steps:
Expand All @@ -36,10 +36,12 @@ jobs:
match-keychain-name: ${{ secrets.MATCH_KEYCHAIN_NAME }}
match-keychain-password: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
sdk-name: sdk
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}

optional-sdk-tests:
name: Optional SDK Tests
runs-on: macos-latest-large
runs-on: macos-15-large
strategy:
max-parallel: 3
matrix:
Expand Down Expand Up @@ -69,13 +71,14 @@ jobs:
match-keychain-password: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }}
sdk-name: ${{ matrix.package-swift.name }}
package-swift: ${{ matrix.package-swift.file }}

gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}

sonarcloud:
needs:
- sdk-unit-tests
- optional-sdk-tests
runs-on: macos-latest-large
runs-on: macos-15-large
name: SonarCloud
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/ui-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ on:

jobs:
build-and-upload-to-appetize:
runs-on: macos-latest
runs-on: macos-15
timeout-minutes: 20
name: "Build and upload app to Appetize"
steps:
Expand Down Expand Up @@ -54,8 +54,10 @@ jobs:
slack-reporter-token: ${{ secrets.SLACK_REPORTER_BOT_TOKEN }}
github-run-id: ${{ github.run_id }}
stripe-publishable-key: ${{ secrets.STRIPE_PUBLISHABLE_KEY }}
gitlab-username: ${{ secrets.GITLAB_USERNAME }}
gitlab-password: ${{ secrets.GITLAB_PASSWORD }}
build-and-upload-to-firebase-and-browserstack:
runs-on: macos-latest
runs-on: macos-15
timeout-minutes: 20
name: "Distribute app to Firebase and Browserstack"
steps:
Expand Down Expand Up @@ -118,6 +120,8 @@ jobs:
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
SOURCE_BRANCH: ${{ github.ref }}
GITLAB_USERNAME: ${{ secrets.GITLAB_USERNAME }}
GITLAB_PASSWORD: ${{ secrets.GITLAB_PASSWORD }}
- name: Save Browserstack ID
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 #v4.6.1
id: save_browserstack_id_step
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/xcode-versions-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
build:
name: "Build App"
runs-on: macos-latest
runs-on: macos-15
strategy:
max-parallel: 3
matrix:
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
success:
name: Report Success
needs: build
runs-on: macos-latest
runs-on: macos-15
steps:
- name: Git - Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ fastlane/report.xml
### Misc
.idea
.DS_Store
JM91JR5L1QGH.json

### Primer
Debug App/Pods
Expand Down
22 changes: 22 additions & 0 deletions .swiftformat
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
--maxwidth 150
--exclude Sources/PrimerSDK/Classes/Third Party/PromiseKit,**/Pods/**,Dangerfile.swift

# Basic rules
--indent 4
--trimwhitespace always
--linebreaks lf

# Matches with SwiftLint
--disable redundantSelf
--disable unusedArguments
--swiftversion 5.0

# File organization
--header ignore

# Wrapping
--wraparguments before-first
--wrapcollections before-first
--funcattributes prev-line
--typeattributes prev-line
--varattributes same-line
17 changes: 17 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
disabled_rules:
- superfluous_disable_command

line_length:
warning: 150
ignores_function_declarations: true
ignores_comments: true
ignores_interpolated_strings: true
ignores_urls: true

included:
- Debug App/Sources

excluded:
- Debug App/Sources/PrimerSDK/Classes/Third Party/PromiseKit
- Debug App/Pods/**/*
- Dangerfile.swift
11 changes: 11 additions & 0 deletions fastlane/Fastfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
require('base64')
default_platform(:ios)

#----------------------- CONSTANTS -------------------------#
Expand Down Expand Up @@ -277,11 +278,21 @@ platform :ios do
lock_when_sleeps: true
)

username = "security@primerapi.com"
username = ENV['GITLAB_USERNAME']
personal_access_token = ENV['GITLAB_PASSWORD']

credentials = "#{username}:#{personal_access_token}"
encoded_credentials = Base64.strict_encode64(credentials)

puts "encoded_credentials: " + encoded_credentials

match(
type: options[:match_type],
readonly: true,
keychain_name: ENV["MATCH_KEYCHAIN_NAME"],
keychain_password: ENV["MATCH_KEYCHAIN_PASSWORD"],
git_basic_authorization: encoded_credentials
)

end
Expand Down
15 changes: 3 additions & 12 deletions fastlane/Matchfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,10 @@
git_url("git@github.com:primer-io/ios_sdk_match_repo.git")
# git_url("https://github.com/primer-io/ios_sdk_match_repo.git")

git_url("https://gitlab.com/primer-io/acceptance/mobile/ios-sdk-match-repo.git")
storage_mode("git")

git_branch("main")
type("development") # The default type, can be: appstore, adhoc, enterprise or development


app_identifier("com.primerapi.PrimerSDKExample")
username("security@primerapi.com") # Your Apple Developer Portal username

platform("ios")
shallow_clone true
force_for_new_devices true
clone_branch_directly true

# For all available options run `fastlane match --help`
# Remove the # in the beginning of the line to enable the other options

# The docs are available on https://docs.fastlane.tools/actions/match
Loading