Skip to content

feat: Implement MLX90614 sensor (#3365) #603

feat: Implement MLX90614 sensor (#3365)

feat: Implement MLX90614 sensor (#3365) #603

Workflow file for this run

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