import React, { useState } from 'react';
import { View, Text, Button, Modal, ScrollView, StyleSheet } from 'react-native';
export default function CICDPipelineSetup() {
const [modalVisible, setModalVisible] = useState(false);
const yamlSnippet = `name: React Native CI\non: [push, pull_request]\njobs:\n build:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v3\n - name: Setup Node.js\n uses: actions/setup-node@v3\n with:\n node-version: '18'\n - run: npm install\n - run: npm test\n - name: Build Android\n run: ./gradlew assembleRelease\n - name: Build iOS\n run: xcodebuild -workspace ios/YourApp.xcworkspace -scheme YourApp -sdk iphoneos -configuration Release build\n`;
return (
<View style={styles.container}>
<Text style={styles.title}>CI/CD Pipeline Setup Guide</Text>
<Text style={styles.step}>1. Connect your GitHub repo</Text>
<Text style={styles.step}>2. Add workflow YAML file</Text>
<Text style={styles.step}>3. Configure build and test</Text>
<Text style={styles.step}>4. Deploy to app store</Text>
<Button title="Start Setup" onPress={() => setModalVisible(true)} />
<Modal
visible={modalVisible}
animationType="slide"
onRequestClose={() => setModalVisible(false)}
>
<View style={styles.modalContainer}>
<ScrollView>
<Text style={styles.codeBlock}>{yamlSnippet}</Text>
</ScrollView>
<Button title="Close" onPress={() => setModalVisible(false)} />
</View>
</Modal>
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, padding: 20, backgroundColor: '#fff' },
title: { fontSize: 24, fontWeight: 'bold', marginBottom: 20 },
step: { fontSize: 16, marginBottom: 10 },
modalContainer: { flex: 1, padding: 20, backgroundColor: '#f0f0f0' },
codeBlock: { fontFamily: 'monospace', fontSize: 14, backgroundColor: '#e0e0e0', padding: 10, borderRadius: 5 }
});This React Native screen shows a simple guide for setting up a CI/CD pipeline using GitHub Actions. The main screen lists the steps clearly with a button to start the setup.
When the user taps the 'Start Setup' button, a modal appears showing a scrollable code snippet of a sample GitHub Actions YAML file. This snippet includes basic steps like checking out code, installing Node.js, running tests, and building Android and iOS apps.
The modal also has a close button to dismiss it. The code uses React Native's Modal, ScrollView, and Button components for a smooth user experience.