Visual hotfixes & CI/CD
Build & Push Docker Images / test-backend (push) Successful in 22s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 30s
Build & Push Docker Images / test-backend (push) Successful in 22s
Build & Push Docker Images / test-frontend (push) Successful in 23s
Build & Push Docker Images / build-backend (push) Successful in 18s
Build & Push Docker Images / build-frontend (push) Successful in 30s
This commit is contained in:
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
"permissions": {
|
|
||||||
"allow": [
|
|
||||||
"Bash(npm run:*)",
|
|
||||||
"Bash(npm install *)",
|
|
||||||
"Bash(npm test *)",
|
|
||||||
"Bash(npx vitest *)",
|
|
||||||
"Bash(./node_modules/.bin/vitest run *)",
|
|
||||||
"Bash(git -C /home/f80ans0/Projects/Webs/FarmaFinder remote -v)",
|
|
||||||
"Bash(grep -E \"^\\(express|sqlite3|bcrypt|axios|cors|redis|connect-sqlite3|express-session|express-rate-limit\\)$\")",
|
|
||||||
"Bash(grep -E \"^\\(react-leaflet|leaflet\\)$\")",
|
|
||||||
"Bash(grep -E \"^\\(connect-sqlite3|express-rate-limit\\)$\")",
|
|
||||||
"Bash(node --check server.js)",
|
|
||||||
"Bash(node --input-type=module -e ' *)",
|
|
||||||
"Bash(node *)",
|
|
||||||
"Bash(kill 1043357 1043372 1043383 1043384 1043416 1043417 1043457 1043463 1043479 1061932)",
|
|
||||||
"Bash(NODE_OPTIONS=--experimental-vm-modules npx jest)",
|
|
||||||
"Bash(npx vite *)",
|
|
||||||
"Bash(curl -sL -o /tmp/ref-nav.png \"https://theuistudio.com/blog/wp-content/uploads/2025/09/image-8.png\")",
|
|
||||||
"WebFetch(domain:dev.to)",
|
|
||||||
"Bash(command -v npx node java)",
|
|
||||||
"Bash(npx --version)",
|
|
||||||
"Bash(npx cap *)",
|
|
||||||
"Bash(pacman -Si jdk17-openjdk)",
|
|
||||||
"Bash(yay -Si android-sdk-cmdline-tools-latest)",
|
|
||||||
"Bash(sudo pacman -S --needed --noconfirm jdk17-openjdk)",
|
|
||||||
"Bash(sudo -n pacman -S --needed --noconfirm jdk17-openjdk)",
|
|
||||||
"Bash(java -version)",
|
|
||||||
"Read(//opt/android-sdk/**)",
|
|
||||||
"Read(//usr/lib/jvm/**)",
|
|
||||||
"Bash(getent group *)",
|
|
||||||
"Bash(cat)",
|
|
||||||
"Bash(grep -q '^android/local.properties$' /home/anunez/Projects/FarmaFinder/.gitignore)",
|
|
||||||
"Bash(JAVA_HOME=/usr/lib/jvm/java-17-openjdk ANDROID_HOME=/opt/android-sdk ANDROID_SDK_ROOT=/opt/android-sdk PATH=/usr/lib/jvm/java-17-openjdk/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:__TRACKED_VAR__ ./gradlew --no-daemon assembleDebug)",
|
|
||||||
"Bash(shred -u /tmp/.farmafinder-keystore-pass)",
|
|
||||||
"Read(//tmp/**)",
|
|
||||||
"Bash(JAVA_HOME=/usr/lib/jvm/java-17-openjdk /usr/lib/jvm/java-17-openjdk/bin/jarsigner -verify -verbose:summary /home/anunez/Projects/FarmaFinder/android/app/build/outputs/bundle/release/app-release.aab)",
|
|
||||||
"Bash(openssl pkcs7 *)",
|
|
||||||
"Bash(openssl x509 *)",
|
|
||||||
"Bash(/opt/android-sdk/build-tools/34.0.0/apksigner verify *)",
|
|
||||||
"Bash(npm ci *)",
|
|
||||||
"Bash(xxd)",
|
|
||||||
"WebFetch(domain:raw.githubusercontent.com)",
|
|
||||||
"Bash(git add *)",
|
|
||||||
"Bash(git commit *)",
|
|
||||||
"Bash(git push *)",
|
|
||||||
"WebFetch(domain:github.com)",
|
|
||||||
"WebSearch",
|
|
||||||
"WebFetch(domain:developers.google.com)",
|
|
||||||
"WebFetch(domain:cocoapods.org)",
|
|
||||||
"Bash(git check-ignore *)"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+20
-22
@@ -20,13 +20,12 @@ trigger_map:
|
|||||||
workflow: deploy_android
|
workflow: deploy_android
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
# ── Shared setup ──────────────────────────────────────────
|
|
||||||
_setup:
|
_setup:
|
||||||
steps:
|
steps:
|
||||||
- activate-ssh-key@4:
|
- activate-ssh-key@5:
|
||||||
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
|
run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
|
||||||
- git-clone@8: {}
|
- git-clone@9: {}
|
||||||
- nvm@1:
|
- setup-node@1:
|
||||||
inputs:
|
inputs:
|
||||||
- node_version: "20"
|
- node_version: "20"
|
||||||
- script@1:
|
- script@1:
|
||||||
@@ -35,11 +34,10 @@ workflows:
|
|||||||
- content: |
|
- content: |
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -ex
|
set -ex
|
||||||
npm install
|
npm ci
|
||||||
npm install --prefix frontend
|
npm ci --prefix frontend
|
||||||
npm run build --prefix frontend
|
npm run build --prefix frontend
|
||||||
|
|
||||||
# ── Android test / PR build ──────────────────────────────
|
|
||||||
test:
|
test:
|
||||||
before_run:
|
before_run:
|
||||||
- _setup
|
- _setup
|
||||||
@@ -61,14 +59,13 @@ workflows:
|
|||||||
"platforms;android-36" \
|
"platforms;android-36" \
|
||||||
"build-tools;36.0.0" \
|
"build-tools;36.0.0" \
|
||||||
"platform-tools" || true
|
"platform-tools" || true
|
||||||
- android-build@1:
|
- android-build@2:
|
||||||
title: Build Android APK (debug)
|
title: Build Android APK (debug)
|
||||||
inputs:
|
inputs:
|
||||||
- project_location: android
|
- project_location: android
|
||||||
- module: app
|
- module: app
|
||||||
- variant: debug
|
- variant: debug
|
||||||
|
|
||||||
# ── iOS test / PR build (simulator) ──────────────────────
|
|
||||||
test_ios:
|
test_ios:
|
||||||
before_run:
|
before_run:
|
||||||
- _setup
|
- _setup
|
||||||
@@ -83,7 +80,7 @@ workflows:
|
|||||||
- cocoapods-install@2:
|
- cocoapods-install@2:
|
||||||
inputs:
|
inputs:
|
||||||
- podfile_path: ios/App/Podfile
|
- podfile_path: ios/App/Podfile
|
||||||
- xcode-archive@4:
|
- xcode-archive@5:
|
||||||
title: Build iOS (simulator)
|
title: Build iOS (simulator)
|
||||||
inputs:
|
inputs:
|
||||||
- project_path: ios/App/App.xcodeproj
|
- project_path: ios/App/App.xcodeproj
|
||||||
@@ -93,7 +90,6 @@ workflows:
|
|||||||
- output_tool: xcodebuild
|
- output_tool: xcodebuild
|
||||||
- cache_level: swift
|
- cache_level: swift
|
||||||
|
|
||||||
# ── iOS deploy ───────────────────────────────────────────
|
|
||||||
deploy_ios:
|
deploy_ios:
|
||||||
before_run:
|
before_run:
|
||||||
- _setup
|
- _setup
|
||||||
@@ -109,7 +105,7 @@ workflows:
|
|||||||
inputs:
|
inputs:
|
||||||
- podfile_path: ios/App/Podfile
|
- podfile_path: ios/App/Podfile
|
||||||
- certificate-and-profile-installer@1: {}
|
- certificate-and-profile-installer@1: {}
|
||||||
- xcode-archive@4:
|
- xcode-archive@5:
|
||||||
title: Archive iOS (release)
|
title: Archive iOS (release)
|
||||||
inputs:
|
inputs:
|
||||||
- project_path: ios/App/App.xcodeproj
|
- project_path: ios/App/App.xcodeproj
|
||||||
@@ -119,9 +115,8 @@ workflows:
|
|||||||
- output_tool: xcodebuild
|
- output_tool: xcodebuild
|
||||||
- export_method: app-store
|
- export_method: app-store
|
||||||
- cache_level: swift
|
- cache_level: swift
|
||||||
- deploy-to-bitrise-io@2: {}
|
- deploy-to-bitrise-io@4: {}
|
||||||
|
|
||||||
# ── Android deploy ───────────────────────────────────────
|
|
||||||
deploy_android:
|
deploy_android:
|
||||||
before_run:
|
before_run:
|
||||||
- _setup
|
- _setup
|
||||||
@@ -143,20 +138,21 @@ workflows:
|
|||||||
"platforms;android-36" \
|
"platforms;android-36" \
|
||||||
"build-tools;36.0.0" \
|
"build-tools;36.0.0" \
|
||||||
"platform-tools" || true
|
"platform-tools" || true
|
||||||
- android-build@1:
|
- android-build@2:
|
||||||
title: Build Android AAB (release)
|
title: Build Android AAB (release)
|
||||||
inputs:
|
inputs:
|
||||||
- project_location: android
|
- project_location: android
|
||||||
- module: app
|
- module: app
|
||||||
- variant: release
|
- variant: release
|
||||||
- deploy-to-bitrise-io@2: {}
|
- sign-apk@1:
|
||||||
|
inputs:
|
||||||
|
- use_apk_signer: "true"
|
||||||
|
- deploy-to-bitrise-io@4: {}
|
||||||
|
|
||||||
# ── Combined deploy (default branch push) ────────────────
|
|
||||||
deploy:
|
deploy:
|
||||||
before_run:
|
before_run:
|
||||||
- _setup
|
- _setup
|
||||||
steps:
|
steps:
|
||||||
# Android
|
|
||||||
- script@1:
|
- script@1:
|
||||||
title: Sync Android native project
|
title: Sync Android native project
|
||||||
inputs:
|
inputs:
|
||||||
@@ -174,13 +170,15 @@ workflows:
|
|||||||
"platforms;android-36" \
|
"platforms;android-36" \
|
||||||
"build-tools;36.0.0" \
|
"build-tools;36.0.0" \
|
||||||
"platform-tools" || true
|
"platform-tools" || true
|
||||||
- android-build@1:
|
- android-build@2:
|
||||||
title: Build Android AAB (release)
|
title: Build Android AAB (release)
|
||||||
inputs:
|
inputs:
|
||||||
- project_location: android
|
- project_location: android
|
||||||
- module: app
|
- module: app
|
||||||
- variant: release
|
- variant: release
|
||||||
# iOS
|
- sign-apk@1:
|
||||||
|
inputs:
|
||||||
|
- use_apk_signer: "true"
|
||||||
- script@1:
|
- script@1:
|
||||||
title: Sync iOS native project
|
title: Sync iOS native project
|
||||||
inputs:
|
inputs:
|
||||||
@@ -192,7 +190,7 @@ workflows:
|
|||||||
inputs:
|
inputs:
|
||||||
- podfile_path: ios/App/Podfile
|
- podfile_path: ios/App/Podfile
|
||||||
- certificate-and-profile-installer@1: {}
|
- certificate-and-profile-installer@1: {}
|
||||||
- xcode-archive@4:
|
- xcode-archive@5:
|
||||||
title: Archive iOS (release)
|
title: Archive iOS (release)
|
||||||
inputs:
|
inputs:
|
||||||
- project_path: ios/App/App.xcodeproj
|
- project_path: ios/App/App.xcodeproj
|
||||||
@@ -202,4 +200,4 @@ workflows:
|
|||||||
- output_tool: xcodebuild
|
- output_tool: xcodebuild
|
||||||
- export_method: app-store
|
- export_method: app-store
|
||||||
- cache_level: swift
|
- cache_level: swift
|
||||||
- deploy-to-bitrise-io@2: {}
|
- deploy-to-bitrise-io@4: {}
|
||||||
@@ -290,7 +290,7 @@
|
|||||||
|
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.app {
|
.app {
|
||||||
padding: 1rem 1rem calc(7rem + env(safe-area-inset-bottom));
|
padding: calc(3.55rem + env(safe-area-inset-top)) 1rem calc(7rem + env(safe-area-inset-bottom));
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-header h1 {
|
.app-header h1 {
|
||||||
|
|||||||
@@ -9,8 +9,10 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
position: sticky;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
z-index: 50;
|
z-index: 50;
|
||||||
padding: calc(0.65rem + env(safe-area-inset-top)) 1rem 0.65rem;
|
padding: calc(0.65rem + env(safe-area-inset-top)) 1rem 0.65rem;
|
||||||
background: var(--glass-bg);
|
background: var(--glass-bg);
|
||||||
|
|||||||
@@ -3,12 +3,11 @@
|
|||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
.home-container {
|
.home-container {
|
||||||
min-height: 100dvh;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 2rem 1.5rem calc(5rem + env(safe-area-inset-bottom));
|
padding: 2rem 1.5rem;
|
||||||
gap: 2.5rem;
|
gap: 2.5rem;
|
||||||
animation: fadeInUp 0.7s ease-out;
|
animation: fadeInUp 0.7s ease-out;
|
||||||
}
|
}
|
||||||
@@ -266,10 +265,10 @@
|
|||||||
/* ── Responsive ─────────────────────────────────────────── */
|
/* ── Responsive ─────────────────────────────────────────── */
|
||||||
@media (max-width: 640px) {
|
@media (max-width: 640px) {
|
||||||
.home-container {
|
.home-container {
|
||||||
padding: 1.5rem 1rem calc(6rem + env(safe-area-inset-bottom));
|
padding: 1.5rem 1rem;
|
||||||
gap: 1.75rem;
|
gap: 1.75rem;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
padding-top: 2.5rem;
|
padding-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-grid {
|
.home-grid {
|
||||||
|
|||||||
Reference in New Issue
Block a user