如何在 GitHub Actions CI/CD 中构建 Flutter

11

我正在尝试使用GitHub Actions构建Flutter应用程序,但我不知道应该选择哪个容器镜像。

是否有受信任的容器镜像可供我用于Flutter?

在构建步骤中,我需要进行哪些调整以便使Flutter SDK可用?

Run flutter pub get


/__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: 1: /__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: flutter: not found
##[error]Process completed with exit code 127.

我修改了GitHub Actions生成的dart.yml文件,使其如下所示:

name: Dart CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  google/dart:latest

    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: flutter pub get
    - name: Run tests
      run: flutter test

你用过这个镜像吗?https://hub.docker.com/r/cirrusci/flutter - Rezwan
4个回答

13

你不需要使用特定于Flutter的容器,有一个Flutter Action可用于默认的Windows、Linux和macOS容器上运行。

这意味着构建你的Flutter应用程序就像使用该操作一样简单(你也需要Java操作),然后运行flutter build命令。以下示例运行aot构建:

on: push
jobs: 
  build-and-test: 
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1 
    # The flutter action needs java so include it
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'
    # Include the flutter action
    - uses: subosito/flutter-action@v1
      with:
        channel: 'stable'  
    # Get flutter packages
    - run: flutter pub get
    # Build :D 
    - run: flutter build aot

我写了一篇博客文章,介绍如何使用actions构建和测试Flutter应用程序,如果你想了解更多,请阅读该文章。


2

我没有使用Docker来运行我的程序。

你可以尝试安装Flutter并运行flutter pub get命令。在我的示例中,我使用了subosito/flutter-action@v1

name: CI

on:
  pull_request:
    branches:
      - development
      - master

jobs:
  test:
    name: Flutter Tests
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-java@v1
        with:
          java-version: '12.x'
      - uses: subosito/flutter-action@v1
        with:
          flutter-version: '1.7.8+hotfix.4'
      - run: flutter doctor
      - run: flutter pub get
      - run: flutter test

这是一个不错的替代方案。我现在会保留这个图像,但会在下一个项目中进行测试。 - Evandro Pomatti

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接