chore(deps): Bump the production-dependencies group with 15 updates #831
Workflow file for this run
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- "master" | |
pull_request: | |
release: | |
types: [published] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
flutter_version: "3.13.0-0.1.pre" | |
flutter_channel: "beta" | |
jobs: | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
outputs: | |
environment: ${{ steps.setVersion.outputs.environment }} | |
version: ${{ steps.setVersion.outputs.version }} | |
release: ${{ steps.setVersion.outputs.release }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set build version | |
id: setVersion | |
run: | | |
VERSION_STRING=$(cat pubspec.yaml | grep -oP "^version: .+" | cut -d" " -f2) | |
VERSION=$(echo $VERSION_STRING | cut -d"+" -f1) | |
BUILD_NUMBER=$(echo $VERSION_STRING | cut -d"+" -f2) | |
COMMIT_ID=$(git rev-parse --short HEAD) | |
if [[ "${{github.event_name}}" == "release" && "${{github.event.action}}" == "published" ]]; then | |
echo "environment=prod" >> $GITHUB_OUTPUT | |
echo "version=$VERSION+$BUILD_NUMBER" >> $GITHUB_OUTPUT | |
echo "release=xyz.hehome.smarthome@$VERSION+$BUILD_NUMBER" >> $GITHUB_OUTPUT | |
else | |
echo "environment=dev" >> $GITHUB_OUTPUT | |
echo "version=$VERSION-git.$COMMIT_ID+$BUILD_NUMBER" >> $GITHUB_OUTPUT | |
echo "release=xyz.hehome.smarthome.dev@$VERSION-git.$COMMIT_ID+$BUILD_NUMBER" >> $GITHUB_OUTPUT | |
fi | |
- name: Get lcov_cobertura | |
run: curl -sSL https://raw.github.com/eriwen/lcov-to-cobertura-xml/master/lcov_cobertura/lcov_cobertura.py -o lcov_cobertura.py | |
- name: Setup Flutter | |
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa | |
with: | |
flutter-version: ${{ env.flutter_version }} | |
channel: ${{ env.flutter_channel }} | |
cache: true | |
- name: Flutter test | |
run: | | |
flutter pub get | |
flutter test --coverage | |
python lcov_cobertura.py coverage/lcov.info | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
android: | |
name: Android | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set version name | |
run: | | |
sed -ri "s#^version: .+#version: $VERSION#g" pubspec.yaml | |
sed -ri "s#..dsn = ''#..dsn = '$SENTRY_DSN'#g" ./lib/bootstrap.dart | |
sed -ri "s#..release = 'release'#..release = '$RELEASE'#g" ./lib/bootstrap.dart | |
env: | |
VERSION: ${{ needs.test.outputs.version }} | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
RELEASE: ${{ needs.test.outputs.release }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
- name: Decrypt large secret | |
run: ./.github/scripts/decrypt_secret.sh | |
env: | |
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }} | |
- name: Setup Flutter | |
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa | |
with: | |
flutter-version: ${{ env.flutter_version }} | |
channel: ${{ env.flutter_channel }} | |
cache: true | |
- name: Build split-per-abi apks | |
run: flutter build apk --split-per-abi -t ./lib/main_$ENVIRONMENT.dart --flavor $ENVIRONMENT | |
env: | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
- name: Upload split-per-abi apks | |
uses: actions/upload-artifact@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
name: android | |
path: ${{ github.workspace }}/build/app/outputs/apk/${{ needs.test.outputs.environment }}/release/*.apk | |
web: | |
name: Web | |
runs-on: ubuntu-latest | |
needs: test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set version name | |
run: | | |
sed -ri "s#^version: .+#version: $VERSION#g" pubspec.yaml | |
sed -ri "s#..dsn = ''#..dsn = '$SENTRY_DSN'#g" ./lib/bootstrap.dart | |
sed -ri "s#..release = 'release'#..release = '$RELEASE'#g" ./lib/bootstrap.dart | |
env: | |
VERSION: ${{ needs.test.outputs.version }} | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
RELEASE: ${{ needs.test.outputs.release }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
- name: Setup Flutter | |
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa | |
with: | |
flutter-version: ${{ env.flutter_version }} | |
channel: ${{ env.flutter_channel }} | |
cache: true | |
- name: Build web version | |
run: | | |
flutter build web --web-renderer=html -t ./lib/main_$ENVIRONMENT.dart | |
env: | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
- name: Upload web version | |
uses: actions/upload-artifact@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
name: web | |
path: ${{ github.workspace }}/build/web | |
windows: | |
name: Windows | |
runs-on: windows-latest | |
needs: test | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set version name | |
run: | | |
sed -ri "s#^version: .+#version: $VERSION#g" pubspec.yaml | |
sed -ri "s#..dsn = ''#..dsn = '$SENTRY_DSN'#g" .\lib\bootstrap.dart | |
sed -ri "s#..release = 'release'#..release = '$RELEASE'#g" .\lib\bootstrap.dart | |
env: | |
VERSION: ${{ needs.test.outputs.version }} | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
RELEASE: ${{ needs.test.outputs.release }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
- name: Setup Flutter | |
uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa | |
with: | |
flutter-version: ${{ env.flutter_version }} | |
channel: ${{ env.flutter_channel }} | |
cache: true | |
- name: Build windows version | |
run: | | |
flutter build windows -t ./lib/main_${env:ENVIRONMENT}.dart | |
env: | |
ENVIRONMENT: ${{ needs.test.outputs.environment }} | |
- name: Upload windows version | |
uses: actions/upload-artifact@v3 | |
if: github.event_name != 'pull_request' | |
with: | |
name: windows | |
path: ${{ github.workspace }}/build/windows/runner/Release | |
deploy_web_dev: | |
name: Deploy Web Dev | |
runs-on: ubuntu-latest | |
needs: web | |
environment: | |
name: dev | |
url: https://smart.dev.hehome.xyz | |
if: github.event_name != 'pull_request' | |
steps: | |
- name: Download web files | |
uses: actions/download-artifact@v3 | |
with: | |
name: web | |
- name: Copy file to server | |
uses: Burnett01/rsync-deployments@45d84ad5f6c174f3e0ffc50e9060a9666d09c16e | |
with: | |
switches: -vzr --delete --exclude ".well-known" | |
path: "." | |
remote_path: ${{ secrets.WEBSITES_ROOT }}/smart-home/web | |
remote_host: ${{ secrets.SSH_HOST }} | |
remote_user: ${{ secrets.SSH_USERNAME }} | |
remote_key: ${{ secrets.SSH_KEY }} | |
deploy_web_prod: | |
name: Deploy Web Prod | |
runs-on: ubuntu-latest | |
needs: web | |
environment: | |
name: prod | |
url: https://smart.hehome.xyz | |
if: ${{ github.event_name == 'release' && github.event.action == 'published' }} | |
steps: | |
- name: Download web files | |
uses: actions/download-artifact@v3 | |
with: | |
name: web | |
- name: Copy file to server | |
uses: Burnett01/rsync-deployments@45d84ad5f6c174f3e0ffc50e9060a9666d09c16e | |
with: | |
switches: -vzr --delete --exclude ".well-known" | |
path: "." | |
remote_path: ${{ secrets.WEBSITES_ROOT }}/smart-home/web | |
remote_host: ${{ secrets.SSH_HOST }} | |
remote_user: ${{ secrets.SSH_USERNAME }} | |
remote_key: ${{ secrets.SSH_KEY }} | |
deploy_github: | |
name: Deploy Github | |
runs-on: ubuntu-latest | |
needs: [android, web, windows] | |
if: ${{ github.event_name == 'release' && github.event.action == 'published' }} | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
- name: Compress files | |
run: | | |
tar -czvf web.tar.gz web | |
tar -czvf windows.tar.gz windows | |
- name: Upload Release Assets | |
uses: alexellis/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
asset_paths: '["android/*.apk", "web.tar.gz", "windows.tar.gz"]' | |
sentry_release: | |
name: Sentry Release | |
runs-on: ubuntu-latest | |
needs: [test, android, web, windows] | |
if: github.event_name != 'pull_request' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Create Sentry release | |
uses: getsentry/action-release@v1 | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} | |
with: | |
environment: ${{ needs.test.outputs.environment }} | |
version: ${{ needs.test.outputs.version }} |