123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- name: Simple CI
-
- on: [pull_request]
-
- jobs:
- lint:
- name: Lint
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: 'npm'
- - name: Get changed files
- id: changed-files
- uses: tj-actions/changed-files@v41
- - name: Get changed lang files
- id: lang-files
- run: echo "all=$(echo "${{ steps.changed-files.outputs.all_changed_files }}" | grep -oE 'lang\/\S+' | tr '\n' ' ')" >> "$GITHUB_OUTPUT"
- - run: npm install
- - name: Check git status
- run: git status
- - name: Normalize lang files to ensure sorted
- if: steps.lang-files.outputs.all
- run: npm run lang-sort
- - name: Check lang files are formatted correctly
- if: steps.lang-files.outputs.all
- run: npm run lint:lang
- - name: Check if the git repository is clean
- run: $(exit $(git status --porcelain --untracked-files=no | head -255 | wc -l)) || (echo "Dirty git tree"; git diff; exit 1)
- - run: npm run lint:ci && npm run tsc:ci
- linux-build:
- name: Build Frontend (Linux)
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: 'npm'
- - run: npm install
- - run: make
- macos-ci:
- name: Build Frontend (macOS)
- runs-on: macOS-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: 'npm'
- - run: npm install
- - run: make
- android-build:
- name: Build mobile bundle (Android)
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: 'npm'
- - run: npm install
- - run: npx react-native bundle --entry-file react/index.native.js --platform android --bundle-output /tmp/android.bundle --reset-cache
- ios-build:
- name: Build mobile bundle (iOS)
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [macos-13, macos-14]
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 20
- cache: 'npm'
- - run: npm install
- - name: setup Xcode
- run: |
- uname -a
- xcode-select -p
- sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
- xcodebuild -version
- - name: setup-cocoapods
- uses: maxim-lobanov/setup-cocoapods@v1
- with:
- podfile-path: ios/Podfile.lock
- - name: Install Pods
- run: |
- pod --version
- cd ios
- pod install --repo-update
- - name: Check if the git repository is clean
- run: $(exit $(git status --porcelain --untracked-files=no | head -255 | wc -l)) || (echo "Dirty git tree"; git diff; exit 1)
- - run: npx react-native bundle --entry-file react/index.native.js --platform ios --bundle-output /tmp/ios.bundle --reset-cache
- debian-build:
- name: Test Debian packages build
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with:
- node-version: 16
- cache: 'npm'
- - run: npm install
- - run: make
- - run: sudo apt-get install -y debhelper
- - run: dpkg-buildpackage -A -rfakeroot -us -uc -d
- - run: make source-package
|