renaming workflows #3
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: Linux arm64 | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: tla-arm64-ubuntu-runner-01 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/workflows/env | |
- name: Read variables from repo | |
run: cat .github/workflows/env >> $GITHUB_ENV | |
- name: Install dependencies | |
run: | | |
export PYVER_MINOR=${PYVER%.*} | |
echo "PYVER_MINOR: $PYVER_MINOR" | |
sudo apt-get update | |
sudo apt-get install -qq curl software-properties-common libnotify-dev libayatana-appindicator3-dev patchelf | |
sudo add-apt-repository -y ppa:git-core/ppa | |
sudo add-apt-repository -y ppa:deadsnakes/ppa | |
sudo apt-get install -qq git python$PYVER_MINOR-dev python$PYVER_MINOR-venv | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
ln -s `which python$PYVER_MINOR` /usr/local/bin/python | |
ln -s `which python$PYVER_MINOR` /usr/local/bin/python3 | |
PYVER_TEMP=`/usr/local/bin/python --version` | |
export PYVERINST=${PYVER_TEMP#* } | |
echo "PYVERINST=$PYVERINST" >> $GITHUB_ENV | |
echo "Installed python version: $PYVERINST" | |
python -m ensurepip --user | |
python -m pip install -U pip pipx | |
- name: Verify Python version | |
if: ${{ env.PYVERINST != env.PYVER }} | |
run: | | |
echo "Python version not compatible" | |
echo "Installed python version: $PYVERINST" | |
echo "Expected: $PYVER" | |
exit 1 | |
- uses: actions/checkout@v4 | |
- name: Check app versions | |
run: | | |
python set-version.py | |
git diff --exit-code | |
- name: Cache helper | |
id: cache-helper | |
uses: actions/cache@v4 | |
with: | |
path: | | |
build/linux/helper | |
assets/licenses/helper.json | |
key: ${{ runner.os }}-py${{ env.PYVER }}-${{ hashFiles('helper/**') }} | |
- name: Build the Helper | |
if: steps.cache-helper.outputs.cache-hit != 'true' | |
run: | | |
sudo apt-get install -qq swig libpcsclite-dev build-essential cmake | |
export PATH=$PATH:$HOME/.local/bin # Needed to ensure pipx/poetry on PATH | |
pipx install poetry | |
./build-helper.sh | |
- name: Install Flutter dependencies | |
run: | | |
sudo apt-get install -qq clang cmake ninja-build pkg-config libgtk-3-dev jq | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: 'stable' | |
flutter-version: ${{ env.FLUTTER }} | |
- name: Configure Flutter | |
run: | | |
git config --global --add safe.directory $FLUTTER_ROOT | |
flutter config --enable-linux-desktop | |
flutter --version | |
- name: Run lints/tests | |
env: | |
SKIP: ${{ steps.cache-helper.outputs.cache-hit == 'true' && 'mypy,flake8,black,bandit' || ''}} | |
run: | | |
export PATH=$PATH:$HOME/.local/bin # Needed to ensure pip/pre-commit on PATH | |
pipx install pre-commit | |
pre-commit run --all-files | |
flutter test | |
- name: Build the app | |
run: flutter build linux | |
- name: Check generated files | |
run: git diff --exit-code | |
- name: Embedd appindicator | |
run: | | |
patchelf --set-rpath '$ORIGIN' build/linux/x64/release/bundle/lib/libtray_manager_plugin.so | |
cp -L /usr/lib/x86_64-linux-gnu/libayatana-appindicator3.so.1 build/linux/x64/release/bundle/lib/ | |
patchelf --set-rpath '$ORIGIN' build/linux/x64/release/bundle/lib/libayatana-appindicator3.so.1 | |
cp -L /usr/lib/x86_64-linux-gnu/libayatana-indicator3.so.7 build/linux/x64/release/bundle/lib/ | |
patchelf --set-rpath '$ORIGIN' build/linux/x64/release/bundle/lib/libayatana-indicator3.so.7 | |
cp -L /usr/lib/x86_64-linux-gnu/libdbusmenu-glib.so.4 build/linux/x64/release/bundle/lib/ | |
patchelf --set-rpath '$ORIGIN' build/linux/x64/release/bundle/lib/libdbusmenu-glib.so.4 | |
cp -L /usr/lib/x86_64-linux-gnu/libdbusmenu-gtk3.so.4 build/linux/x64/release/bundle/lib/ | |
patchelf --set-rpath '$ORIGIN' build/linux/x64/release/bundle/lib/libdbusmenu-gtk3.so.4 | |
- name: Rename and archive app | |
run: | | |
export REF=$(echo ${GITHUB_REF} | cut -d '/' -f 3) | |
export BASENAME="yubioath-desktop-${REF}-linux" | |
mkdir deploy | |
mv build/linux/x64/release/bundle "build/${BASENAME}" | |
tar -czf deploy/${BASENAME}.tar.gz -C build "${BASENAME}" | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: yubioath-desktop-linux | |
path: deploy |