feat: Implement MLX90614 sensor (#3365) #603
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Push | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| - '**.png' | |
| - '**.jpg' | |
| - '**.jpeg' | |
| - '**.gif' | |
| - '**.svg' | |
| - '**.webp' | |
| - '**.txt' | |
| - '**.arb' | |
| env: | |
| ANDROID_EMULATOR_API: 34 | |
| ANDROID_EMULATOR_ARCH: x86_64 | |
| IPHONE_DEVICE_MODEL: iPhone 16 Pro Max | |
| IPAD_DEVICE_MODEL: iPad Pro 13-inch (M4) | |
| jobs: | |
| common: | |
| name: Common Build | |
| runs-on: ubuntu-latest | |
| outputs: | |
| VERSION_NAME: ${{ steps.flutter-version.outputs.VERSION_NAME }} | |
| VERSION_CODE: ${{ steps.flutter-version.outputs.VERSION_CODE }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Common Workflow | |
| uses: ./.github/actions/common | |
| - name: Hydrate and Update Version | |
| id: flutter-version | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| commit_message=$(git log -1 --pretty=format:"%s") | |
| git clone --branch=version https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} version | |
| cd version | |
| IFS='.' read -r major minor patch < versionName.txt | |
| if [[ "$commit_message" =~ ^feat: ]]; then | |
| next_minor=$((minor + 1)) | |
| next_patch=0 | |
| else | |
| next_minor=$((minor)) | |
| next_patch=$((patch + 1)) | |
| fi | |
| next_version_name="$major.$next_minor.$next_patch" | |
| echo "VERSION_NAME=$next_version_name" >> $GITHUB_OUTPUT | |
| echo "$next_version_name" > versionName.txt | |
| read -r version_code < versionCode.txt | |
| new_version_code=$((version_code + 1)) | |
| echo "VERSION_CODE=$new_version_code" >> $GITHUB_OUTPUT | |
| echo "$new_version_code" > versionCode.txt | |
| git checkout --orphan temporary | |
| git add --all . | |
| git commit -am "[Auto] Update versionName: $next_version_name & versionCode: $new_version_code ($(date +%Y-%m-%d.%H:%M:%S))" | |
| git branch -D version | |
| git branch -m version | |
| git push --force origin version | |
| android: | |
| name: Android Flutter Build | |
| needs: common | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Prepare Build Keys | |
| if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| env: | |
| ENCRYPTED_F10B5E0E5262_IV: ${{ secrets.ENCRYPTED_F10B5E0E5262_IV }} | |
| ENCRYPTED_F10B5E0E5262_KEY: ${{ secrets.ENCRYPTED_F10B5E0E5262_KEY }} | |
| run: | | |
| bash scripts/prep-android-key.sh | |
| - name: Android Workflow | |
| uses: ./.github/actions/android | |
| with: | |
| STORE_PASS: ${{ secrets.STORE_PASS }} | |
| ALIAS: ${{ secrets.ALIAS }} | |
| KEY_PASS: ${{ secrets.KEY_PASS }} | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload APK | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: APK Generated | |
| path: build/app/outputs/flutter-apk | |
| - name: Upload AAB Release | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: AAB Generated | |
| path: build/app/outputs/bundle | |
| - name: Update app in Open Testing track | |
| if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| run: | | |
| git clone --branch=fastlane-android --depth=1 https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} fastlane | |
| fastlane uploadToOpenTesting | |
| if [[ $? -ne 0 ]]; then | |
| exit 1 | |
| fi | |
| ios: | |
| name: iOS Flutter Build | |
| needs: common | |
| runs-on: macos-latest | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '26.3.0' | |
| - uses: actions/checkout@v7 | |
| # # TODO: Uncomment once iOS certs are renewed. | |
| # - name: Prepare Build Keys | |
| # if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| # env: | |
| # ENCRYPTED_IOS_IV: ${{ secrets.ENCRYPTED_IOS_IV }} | |
| # ENCRYPTED_IOS_KEY: ${{ secrets.ENCRYPTED_IOS_KEY }} | |
| # run: | | |
| # bash scripts/prep-ios-key.sh | |
| # # TODO: Uncomment once iOS certs are renewed. | |
| # - name: Setup Certs | |
| # if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| # env: | |
| # MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | |
| # MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} | |
| # run: | | |
| # cd ./iOS | |
| # git clone --branch=fastlane-ios --depth=1 https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} fastlane | |
| # fastlane setupCertificates | |
| # if [[ $? -ne 0 ]]; then | |
| # exit 1 | |
| # fi | |
| - name: iOS Workflow | |
| uses: ./.github/actions/ios | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| # # TODO: Uncomment once iOS certs are renewed. | |
| # - name: Push app to testflight | |
| # if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| # run: | | |
| # cd ./iOS | |
| # fastlane uploadToBeta | |
| # if [[ $? -ne 0 ]]; then | |
| # exit 1 | |
| # fi | |
| - name: Upload iOS IPA | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: iOS IPA Final | |
| # TODO: Remove pslab-unsigned.ipa from this list once iOS certs are renewed. | |
| path: | | |
| pslab-unsigned.ipa | |
| build/ios/ipa/*.ipa | |
| if-no-files-found: ignore | |
| web: | |
| name: Web App Flutter Build | |
| needs: common | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Web App Workflow | |
| uses: ./.github/actions/web | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload Web App Archive | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: Web App Archive | |
| path: build/pslab-web-app-${{needs.common.outputs.VERSION_NAME }}.zip | |
| windows: | |
| name: Windows Flutter Build | |
| needs: common | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Windows Workflow | |
| uses: ./.github/actions/windows | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload Windows Installer | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: Windows Installer | |
| path: build/windows/x64/installer/Release/*.exe | |
| linux: | |
| name: Linux Flutter Build | |
| needs: common | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Linux Workflow | |
| uses: ./.github/actions/linux | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload Linux Packages | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: Linux Packages | |
| path: | | |
| *.deb | |
| *.rpm | |
| linux-arm64: | |
| name: Linux ARM64 Flutter Build | |
| needs: common | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Linux ARM64 Workflow | |
| uses: ./.github/actions/linux-arm64 | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload Linux ARM64 Packages | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: Linux ARM64 Packages | |
| path: | | |
| *.deb | |
| *.rpm | |
| macos: | |
| name: macOS Flutter Build | |
| needs: common | |
| runs-on: macos-latest | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '26.3.0' | |
| - uses: actions/checkout@v7 | |
| - name: macOS Workflow | |
| uses: ./.github/actions/macos | |
| with: | |
| VERSION_NAME: ${{needs.common.outputs.VERSION_NAME}} | |
| VERSION_CODE: ${{needs.common.outputs.VERSION_CODE}} | |
| - name: Upload macOS DMG | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: macOS DMG | |
| path: '*.dmg' | |
| publish-app-branch: | |
| name: Publish artifacts to app branch | |
| needs: [android, ios, windows, linux, linux-arm64, macos, web] | |
| if: ${{ github.repository == 'fossasia/pslab-app' }} | |
| runs-on: ubuntu-latest | |
| concurrency: | |
| group: upload-to-app-branch | |
| cancel-in-progress: false | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: artifacts | |
| - name: Publish artifacts to app branch | |
| run: | | |
| set -euo pipefail | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git clone --branch=app https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} app | |
| cd app | |
| branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} | |
| echo "Removing old artifacts" | |
| find . -maxdepth 1 -type f \( -name '*.apk' -o -name '*.aab' -o -name '*.ipa' -o -name '*.exe' -o -name '*.deb' -o -name '*.rpm' -o -name '*.dmg' -o -name '*.zip' \) -delete | |
| echo "Removing debug artifacts" | |
| find ../artifacts -type f \( -name '*debug*' -o -name '*profile*' \) -delete | |
| echo "Copying new artifacts" | |
| find ../artifacts -type f \( \ | |
| -name '*.apk' -o \ | |
| -name '*.aab' -o \ | |
| -name '*.ipa' -o \ | |
| -name '*.exe' -o \ | |
| -name '*.deb' -o \ | |
| -name '*.rpm' -o \ | |
| -name '*.dmg' -o \ | |
| -name '*.zip' \ | |
| \) -exec cp -v {} . \; | |
| echo "Renaming Android artifacts" | |
| for file in app*; do | |
| [ -e "$file" ] || continue | |
| mv "$file" "pslab-$branch-${file#*-}" | |
| done | |
| git checkout --orphan temporary | |
| git add --all . | |
| git diff --cached --quiet && echo "No changes to commit" && exit 0 | |
| git commit -m "[Auto] Update artifacts from $branch ($(date +%Y-%m-%d.%H:%M:%S))" | |
| git branch -D app | |
| git branch -m app | |
| git push --force origin app |