Build Flutter app in container.

The Flutter app also becomes dependent on the glibc version available on
the machine, so we need to build it on an older OS.
This commit is contained in:
Dain Nilsson 2022-12-08 21:19:22 +01:00
parent a5c8670fec
commit a8409d57f9
No known key found for this signature in database
GPG Key ID: F04367096FBA95E8

View File

@ -3,57 +3,28 @@ name: Linux
on: [push, pull_request]
jobs:
helper:
name: Build helper
build:
runs-on: ubuntu-latest
env:
PYVER: 3.11
FLUTTER: '3.3.9'
container:
image: ubuntu:18.04
env:
DEBIAN_FRONTEND: noninteractive
steps:
- uses: actions/checkout@v3
- name: Cache helper
id: cache-helper
uses: actions/cache@v3
with:
path: helper.tar.gz
key: ${{ runner.os }}-py${{ env.PYVER }}-${{ hashFiles('helper/**') }}
- name: Install dependencies
if: steps.cache-helper.outputs.cache-hit != 'true'
run: |
apt-get update
apt-get install -qq swig libpcsclite-dev software-properties-common build-essential cmake git
apt-get install -qq software-properties-common
add-apt-repository -y ppa:git-core/ppa
add-apt-repository -y ppa:deadsnakes/ppa
apt-get install -qq python$PYVER-dev python$PYVER-venv
python$PYVER -m ensurepip --user
python$PYVER -m pip install -U pip
python$PYVER -m pip install poetry
apt-get install -qq git python$PYVER-dev python$PYVER-venv
git config --global --add safe.directory "$GITHUB_WORKSPACE"
ln -s `which python$PYVER` /usr/local/bin/python
- name: Build the Helper
if: steps.cache-helper.outputs.cache-hit != 'true'
run: ./build-helper.sh
- name: Create archive
if: steps.cache-helper.outputs.cache-hit != 'true'
run: tar -czf helper.tar.gz build/linux/helper assets/licenses/helper.json
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: helper
path: helper.tar.gz
build:
name: Build app
runs-on: ubuntu-latest
needs: helper
steps:
- uses: actions/checkout@v3
- name: Check app versions
@ -61,26 +32,41 @@ jobs:
python set-version.py
git diff --exit-code
- name: Download helper
uses: actions/download-artifact@v3
- name: Cache helper
id: cache-helper
uses: actions/cache@v3
with:
name: helper
path: |
build/linux/helper
assets/licenses/helper.json
key: ${{ runner.os }}-py${{ env.PYVER }}-${{ hashFiles('helper/**') }}
- name: Unpack helper
- name: Install helper dependencies
if: steps.cache-helper.outputs.cache-hit != 'true'
run: |
tar -xf helper.tar.gz
apt-get install -qq swig libpcsclite-dev build-essential cmake
python -m ensurepip --user
python -m pip install -U pip
python -m pip install poetry
- name: Install dependencies
- name: Build the Helper
if: steps.cache-helper.outputs.cache-hit != 'true'
run: ./build-helper.sh
- name: Install Flutter dependencies
run: |
sudo apt-get update
sudo apt-get install -qq clang cmake ninja-build pkg-config libgtk-3-dev
apt-get install -qq clang cmake ninja-build pkg-config libgtk-3-dev jq
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: '3.3.9'
- run: flutter config --enable-linux-desktop
- run: flutter --version
flutter-version: ${{ env.FLUTTER }}
- name: Configure Flutter
run: |
git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-$FLUTTER-x64
flutter config --enable-linux-desktop
flutter --version
- name: Run tests
run: |