CD/ CI Jobs for FLutter Windows and Linux ARM64 and Code Analyze are failing

Hey there,
I am completely new to gitlab runner / jobs / pipelines.
So for my flutter project I copied another Pipeline from fluffy chat.
While it works for fluffychat it does not for me.
Could you please help me getting the jobs running?

My gitlab-ci.yml looks like this:

image:
  name: cirrusci/flutter

variables:
  GIT_SUBMODULE_STRATEGY: recursive

.macos_saas_runners:
  tags:
    - shared-macos-amd64
  image: macos-11-xcode-12

.shared_windows_runners:
  tags:
    - shared-windows
    - windows
    - windows-1809

stages:
  - coverage
  - release
  - deploy

code_analyze:
  stage: coverage
  script: 
    - flutter pub get
    - flutter pub run import_sorter:main --no-comments --exit-if-changed
    - flutter format lib/ test/ --set-exit-if-changed
    - flutter pub get
    - flutter analyze
    - flutter pub run dart_code_metrics:metrics lib -r gitlab > code-quality-report.json || true
  artifacts:
    reports:
      codequality: code-quality-report.json

test:
  stage: coverage
  script: [flutter test]

build_windows:
  extends:
    - .shared_windows_runners
  needs: [test]
  stage: coverage
  before_script: 
    - choco install flutter -y
    - choco install visualstudio2019community -y
    - choco install vcredist-all -y
    - Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
    - refreshenv
  script:
    - flutter doctor
    - flutter config --enable-windows-desktop
    - flutter clean
    - flutter pub get
    - flutter build windows --release -v
  artifacts:
    paths:
      - build/windows/runner/Release
  allow_failure: true

build_macos:
  extends:
    - .macos_saas_runners
  stage: coverage
  needs: [test]
  before_script: 
    - gem install cocoapods
  script:
    - flutter doctor
    - flutter config --enable-macos-desktop
    - flutter clean
    - flutter pub get
    - cd macos
    - pod install
    - pod update
    - cd ..
    - flutter build macos --release -v
  artifacts:
    paths:
      - build/macos/runner/Release
  allow_failure: true

build_linux_x86:
  stage: coverage
  needs: [test]
  before_script:
    [
      sudo apt update && sudo apt install curl clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev liblzma-dev libjsoncpp-dev cmake-data libjsoncpp1 libsodium-dev libsecret-1-dev libsecret-1-0 librhash0 -y,
    ]
  script: 
    - flutter config --enable-linux-desktop
    - flutter clean
    - flutter pub get
    - flutter build linux --release -v

  artifacts:
    when: on_success
    paths: 
      - build/linux/x64/release/bundle/

build_linux_arm64:
  image: fischerscode/flutter
  stage: coverage
  needs: [test]
  before_script: [flutter upgrade]
  script: 
    - flutter config --enable-linux-desktop
    - flutter clean
    - flutter pub get
    - flutter build linux --release -v
  tags: 
    - arm64v8
  only:
    - main
    - tags
  allow_failure: true
  artifacts:
    when: on_success
    paths:
      - build/linux/arm64/release/bundle/

The failing jobs are:
linux arm64 with this error

This job is stuck because you don't have any active runners online or available with any of these tags assigned to them: arm64v8

Go to project CI settings

I thought that arm64v8 would be a public runner I can simply include with the tag arm64v8.

Windows with this error:

C:\GitLab-Runner\builds\j0chn\nextcloud_password_client\windows\flutter\ephemeral\.plugin_symlinks\flutter_secure_storage_windows\windows\flutter_secure_storage_windows_plugin.cpp(6,10): fatal error C1083: Cannot open include file: 'atlstr.h': No such file or directory [C:\GitLab-Runner\builds\j0chn\nextcloud_password_client\build\windows\plugins\flutter_secure_storage_windows\flutter_secure_storage_windows_plugin.vcxproj]

code_analyze with this (I think this is more a flutter problem):

$ flutter pub run import_sorter:main --no-comments --exit-if-changed
contains flutter: true
contains registrant: false
┏━━ Sorting 126 dart filespub finished with exit code 1
Uploading artifacts for failed job
00:02
Uploading artifacts...
WARNING: code-quality-report.json: no matching files 
ERROR: No files to upload                          
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1

Thank you very much!!!

1 Like

I got everything working so far.
Just the windows build still fails because of missing `atlstr.h’.
can you help me with that?

It sounds like you are missing a dependency in Windows, so you’ll need to add that in the before_script section of your build_windows job.

I don’t use Windows, but I would guess the missing library is ATL.