diff --git a/.github/workflows/maestro-cloud.yml b/.github/workflows/maestro-cloud.yml new file mode 100644 index 0000000..1a248c0 --- /dev/null +++ b/.github/workflows/maestro-cloud.yml @@ -0,0 +1,94 @@ +# Maestro Cloud — E2E template for rebreak-native. +# STATUS: TEMPLATE ONLY — not active. Requires User confirmation before enabling. +# +# Trigger: manual dispatch OR PR to main (commented out — enable after User GO). +# Requires: +# - MAESTRO_CLOUD_API_KEY in GitHub Actions secrets +# - EAS_TOKEN in GitHub Actions secrets +# - E2E_TEST_USER + E2E_TEST_PASSWORD in GitHub Actions secrets +# - Maestro Cloud account configured at mobile.dev + +name: Maestro Cloud E2E (rebreak-native) + +on: + workflow_dispatch: + inputs: + platform: + description: "Target platform" + required: true + default: "ios" + type: choice + options: + - ios + - android + # Uncomment to run on PRs — only after User approval: + # pull_request: + # branches: [main] + # paths: + # - "apps/rebreak-native/**" + # - "apps/rebreak-native/.maestro/**" + +jobs: + maestro-cloud: + name: E2E (${{ inputs.platform || 'ios' }}) + runs-on: ubuntu-latest + + # Skip entirely if Maestro Cloud key is not configured — + # avoids CI failure on forks or before Cloud is set up. + if: ${{ secrets.MAESTRO_CLOUD_API_KEY != '' }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: apps/rebreak-native + + # Build app via EAS — requires EAS_TOKEN secret and eas.json configured. + # Profile "preview" must produce a .ipa (iOS) or .apk (Android). + - name: Build with EAS + uses: expo/expo-github-action@v8 + with: + eas-version: latest + token: ${{ secrets.EAS_TOKEN }} + + - name: EAS Build + run: | + eas build \ + --platform ${{ inputs.platform || 'ios' }} \ + --profile preview \ + --non-interactive \ + --output ./build-artifact + working-directory: apps/rebreak-native + + # Install Maestro CLI + - name: Install Maestro CLI + run: curl -Ls "https://get.maestro.mobile.dev" | bash + env: + MAESTRO_VERSION: 1.39.0 + + - name: Add Maestro to PATH + run: echo "$HOME/.maestro/bin" >> $GITHUB_PATH + + # Upload build + run flows on Maestro Cloud + - name: Run Maestro Cloud + run: | + maestro cloud \ + --apiKey ${{ secrets.MAESTRO_CLOUD_API_KEY }} \ + --app ./build-artifact \ + --device ${{ inputs.platform || 'ios' }} \ + --env=E2E_TEST_USER=${{ secrets.E2E_TEST_USER }} \ + --env=E2E_TEST_PASSWORD=${{ secrets.E2E_TEST_PASSWORD }} \ + apps/rebreak-native/.maestro/ + working-directory: ${{ github.workspace }} diff --git a/apps/admin/pages/index.vue b/apps/admin/pages/index.vue index 23e1643..8f14f03 100644 --- a/apps/admin/pages/index.vue +++ b/apps/admin/pages/index.vue @@ -75,5 +75,12 @@ const quickLinks = [ icon: "heroicons:flag", to: "/moderation", }, + { + label: "Lyra-Posts", + value: "→", + hint: "Als Lyra oder ReBreak posten", + icon: "heroicons:sparkles", + to: "/lyra", + }, ] diff --git a/apps/admin/pages/lyra.vue b/apps/admin/pages/lyra.vue new file mode 100644 index 0000000..845ca83 --- /dev/null +++ b/apps/admin/pages/lyra.vue @@ -0,0 +1,297 @@ +