dynamicbible/.gitlab-ci.yml
2024-07-11 18:28:33 +00:00

97 lines
1.8 KiB
YAML

stages:
- build
- test
- staging
- prod
build-android:
stage: build
image: walljm/gradle_android:8.2.1-jdk17-android34-node22
before_script:
- cd ./src/android
- bash ./install-sdk.sh
- cd ..
script:
- pwd
- node -v
- npm -v
- npm ci
- npm run-script build
- npm run-script copy
- cd android/
- gradle signingReport
- gradle assembleRelease
- gradle bundleRelease
artifacts:
paths:
- ./src/dist
- ./src/android/app/build/outputs
test:
stage: test
image: walljm/node-chrome-headless:22.4-bookworm
variables:
NODE_OPTIONS: "--max_old_space_size=2048"
script:
- cd ./src
- npm ci
- npm run-script lint
- npm run-script test-headless
needs:
- build-android
deploy-staging:
stage: staging
image: google/cloud-sdk
script:
- cd ./src
- make deploy-staging
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: on_success
allow_failure: false
needs:
- build-android
deploy-prod-site:
stage: prod
image: google/cloud-sdk
script:
- cd ./src
- make deploy-prod
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: manual
allow_failure: false
needs:
- build-android
deploy-android:
stage: prod
image: walljm/gradle_android:8.2.1-jdk17-android34-node22
needs:
- build-android
before_script:
- cd ./src/android
- bash ./install-sdk.sh
- cd ..
script:
- pwd
- node -v
- npm -v
- npm ci
- npm run-script build
- npm run-script copy
- cd android/
- gradle signingReport
- gradle assembleRelease
- gradle bundleRelease
- gradle publishReleaseBundle
artifacts:
paths:
- ./src/android/app/build/outputs
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: manual
allow_failure: false