Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e6abe4e
ci: add Harness CI pipeline for react-native-client
sanzmauro Jul 28, 2026
71954bd
Harness.io Git Commit
sanzmauro Jul 28, 2026
d0490e8
Harness.io Git Commit
sanzmauro Jul 28, 2026
0143444
Harness.io Git Commit
sanzmauro Jul 28, 2026
f050bd6
Harness.io Git Commit
sanzmauro Jul 28, 2026
7c86933
Harness.io Git Commit
sanzmauro Jul 28, 2026
74aa4d7
Harness.io Git Commit
sanzmauro Jul 28, 2026
b2dbcb9
Harness.io Git Commit
sanzmauro Jul 28, 2026
af484a4
Harness.io Git Commit
sanzmauro Jul 28, 2026
80af352
ci: add Harness migration report for react-native-client
sanzmauro Jul 28, 2026
933d6b8
Harness.io Git Commit
sanzmauro Jul 28, 2026
2692a96
ci: fix mise node lts alias in Harness pipeline
sanzmauro Jul 28, 2026
cfcc223
ci: fix mise node lts alias, remove duplicate pipeline file
sanzmauro Jul 28, 2026
dcd0f9f
ci: fix SonarQube test path — tests are colocated in src/**/__tests__
sanzmauro Jul 28, 2026
4598226
ci: update Harness migration report with passing dry-run
sanzmauro Jul 28, 2026
7396d84
ci: remove migration report and legacy GitHub Actions workflows
sanzmauro Jul 28, 2026
2acfc88
ci: remove duplicate input set files, keep single reactnativeclientin…
sanzmauro Jul 28, 2026
10a4708
ci: trigger Harness webhook re-check
sanzmauro Jul 28, 2026
755e131
ci: remove input set file to let Harness recreate it via git-backed API
sanzmauro Jul 28, 2026
6265faf
Harness.io Git Commit
sanzmauro Jul 28, 2026
75bf32b
ci: trigger Harness webhook re-check after pipeline recreation
sanzmauro Jul 28, 2026
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
1 change: 0 additions & 1 deletion .github/CODEOWNERS

This file was deleted.

7 changes: 0 additions & 7 deletions .github/pull_request_template.md

This file was deleted.

68 changes: 0 additions & 68 deletions .github/workflows/ci.yml

This file was deleted.

45 changes: 0 additions & 45 deletions .github/workflows/update-notice-year.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
pipeline:
name: react-native-client-repo
identifier: reactnativeclient
projectIdentifier: Harness_Split
orgIdentifier: PROD
tags: {}
properties:
ci:
codebase:
connectorRef: fmegithubharnessgitops
repoName: react-native-client
build:
type: branch
spec:
branch: <+input>
stages:
- stage:
name: Build and Test
identifier: Build_and_Test
description: ""
type: CI
spec:
cloneCodebase: true
caching:
enabled: true
override: true
platform:
os: Linux
arch: Amd64
runtime:
type: Cloud
spec:
size: flex
execution:
steps:
- step:
type: Run
name: Install Node
identifier: Install_Node
spec:
shell: Bash
command: |-
curl https://mise.run | sh
export PATH="$HOME/.local/bin:$PATH"
mise use --global node@<+matrix.nodeVersion>
node --version
npm --version
- step:
type: Run
name: Install Dependencies
identifier: Install_Dependencies
spec:
shell: Bash
command: |-
export PATH="$HOME/.local/bin:$PATH"
eval "$(mise activate bash)"
npm ci
- step:
type: Run
name: Check
identifier: Check
spec:
shell: Bash
command: |-
export PATH="$HOME/.local/bin:$PATH"
eval "$(mise activate bash)"
npm run check
- step:
type: Run
name: Run Tests
identifier: Run_Tests
spec:
shell: Bash
command: |-
export PATH="$HOME/.local/bin:$PATH"
eval "$(mise activate bash)"
npm run test -- --coverage
- step:
type: Run
name: Build
identifier: Build
spec:
shell: Bash
command: |-
export PATH="$HOME/.local/bin:$PATH"
eval "$(mise activate bash)"
npm run build
- step:
type: Run
name: SonarQube Scan
identifier: SonarQube_Scan
when:
stageStatus: Success
condition: <+matrix.nodeVersion> == "lts"
spec:
shell: Sh
command: |-
export SONAR_SCANNER_VERSION=5.0.1.3006
curl -sSLo sonar-scanner.zip \
"https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux.zip"
unzip -q sonar-scanner.zip
export PATH="$PWD/sonar-scanner-${SONAR_SCANNER_VERSION}-linux/bin:$PATH"
apt-get install -y openjdk-17-jdk -qq
sonar-scanner \
-Dsonar.projectKey=react-native-client \
-Dsonar.sources=src \
-Dsonar.test.inclusions="**/__tests__/**" \
-Dsonar.host.url=https://sonar.harness.io \
-Dsonar.token=<+secrets.getValue("sonarqube-token")> \
-Dsonar.javascript.lcov.reportPaths=coverage/lcov.info \
-Dsonar.exclusions="**/node_modules/**,**/.git/**"
- step:
type: Run
name: Post Quality Gate
identifier: Post_Quality_Gate
when:
stageStatus: Success
condition: <+matrix.nodeVersion> == "lts"
spec:
shell: Bash
command: |-
#!/bin/bash
set -e

SONAR_TOKEN="<+secrets.getValue("sonarqube-token")>"
SONAR_URL="https://sonar.harness.io"
SONAR_PROJECT_KEY="react-native-client"
GITHUB_TOKEN="<+secrets.getValue("github-devops-token")>"
GITHUB_REPO="react-native-client"
COMMIT_SHA="<+codebase.commitSha>"

STATUS_JSON=$(curl -sf \
-H "Authorization: Bearer ${SONAR_TOKEN}" \
"${SONAR_URL}/api/qualitygates/project_status?projectKey=${SONAR_PROJECT_KEY}")

QG_STATUS=$(echo "$STATUS_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin)['projectStatus']['status'])")

case "$QG_STATUS" in
OK) GH_STATE="success"; DESCRIPTION="Quality gate passed" ;;
ERROR) GH_STATE="failure"; DESCRIPTION="Quality gate failed" ;;
WARN) GH_STATE="success"; DESCRIPTION="Quality gate passed with warnings" ;;
*) GH_STATE="pending"; DESCRIPTION="Quality gate status unknown" ;;
esac

TARGET_URL="${SONAR_URL}/dashboard?id=${SONAR_PROJECT_KEY}"

curl -sf -X POST \
-H "Authorization: token ${GITHUB_TOKEN}" \
-H "Accept: application/vnd.github.v3+json" \
-H "Content-Type: application/json" \
-d "{\"state\":\"${GH_STATE}\",\"description\":\"${DESCRIPTION}\",\"context\":\"sonarqube/quality-gate\",\"target_url\":\"${TARGET_URL}\"}" \
"https://api.github.com/repos/splitio/${GITHUB_REPO}/statuses/${COMMIT_SHA}"

echo "Posted SonarQube quality gate status: ${GH_STATE}"
strategy:
matrix:
nodeVersion:
- "lts"
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
inputSet:
name: reactnativeclientinputset
identifier: reactnativeclientinputset
orgIdentifier: PROD
projectIdentifier: Harness_Split
pipeline:
identifier: reactnativeclient
properties:
ci:
codebase:
build:
type: PR
spec:
number: <+trigger.prNumber>
Loading