ci(provd): adding workflow for provd pr's #2
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: | |
- main | |
- 'ubuntu/**' | |
- 'canary-*' | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
flutter-analyze: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: melos analyze | |
bootstrap: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
target: | |
- ubuntu_bootstrap_test.dart | |
- screenshot_test.dart | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: | | |
sudo apt update | |
sudo apt install -y clang cmake curl libgtk-3-dev ninja-build pkg-config unzip | |
sudo apt install -y dbus-x11 network-manager upower | |
make install_deps | |
- run: | | |
sudo loginctl enable-linger $USER | |
sudo systemctl start user@$UID.service | |
echo "XDG_RUNTIME_DIR=/run/user/$UID" >> $GITHUB_ENV | |
# write any setting to force-start dconf.service (via xvfb because dbus-launch needs a display) | |
xvfb-run -a gsettings set org.gnome.desktop.interface color-scheme "'default'" | |
- run: xvfb-run -a -s '-screen 0 1024x768x24 +extension GLX' flutter test integration_test/${{matrix.target}} | |
working-directory: packages/ubuntu_bootstrap | |
env: | |
SUBIQUITY_REPLAY_TIMESCALE: 100 | |
flutter-coverage: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
package: | |
- ubuntu_bootstrap | |
- ubuntu_init | |
- ubuntu_provision | |
- ubuntu_utils | |
- ubuntu_wizard | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: flutter test --coverage | |
working-directory: packages/${{matrix.package}} | |
- run: sudo apt update && sudo apt install lcov | |
- run: lcov --remove coverage/lcov.info '**/*.g.dart' '**/*.freezed.dart' -o coverage/lcov.info | |
working-directory: packages/${{matrix.package}} | |
- uses: codecov/codecov-action@v3 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
flutter-format: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: melos format | |
init: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
target: | |
- ubuntu_init_test.dart | |
- screenshot_test.dart | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: sudo apt update | |
- run: sudo apt install -y clang cmake curl libgtk-3-dev ninja-build pkg-config unzip | |
- run: xvfb-run -a -s '-screen 0 1024x768x24 +extension GLX' flutter test integration_test/${{matrix.target}} | |
working-directory: packages/ubuntu_init | |
flutter-mocks: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: melos generate | |
- name: Check for outdated mocks | |
if: github.event_name == 'pull_request' | |
run: ./.github/scripts/check-outdated-files.sh | |
- name: Create PR | |
if: github.event_name == 'push' | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
add-paths: '**/*.mocks.dart' | |
title: 'chore: regenerate mocks' | |
commit-message: 'chore: regenerate mocks' | |
branch: create-pull-request/mocks | |
delete-branch: true | |
l10n: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- run: melos gen-l10n | |
- name: Check for outdated l10n | |
if: github.event_name == 'pull_request' | |
run: ./.github/scripts/check-outdated-files.sh | |
- name: Create PR | |
if: github.event_name == 'push' | |
uses: peter-evans/create-pull-request@v5 | |
with: | |
add-paths: '**/l10n/*.dart' | |
title: 'chore: regenerate l10n' | |
commit-message: 'chore: regenerate l10n' | |
branch: create-pull-request/l10n | |
delete-branch: true | |
flutter-tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: asdf-vm/actions/install@v2 | |
- uses: bluefireteam/melos-action@v2 | |
- name: Install dependencies | |
run: | | |
sudo apt update && sudo apt install lcov | |
make install_deps | |
- name: Setup environment | |
run: | | |
sudo loginctl enable-linger $USER | |
sudo systemctl start user@$UID.service | |
echo "XDG_RUNTIME_DIR=/run/user/$UID" >> $GITHUB_ENV | |
- run: melos coverage | |
- uses: codecov/codecov-action@v3 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
go-sanity: | |
name: "Go: Code sanity" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Go code sanity check | |
uses: canonical/desktop-engineering/gh-actions/go/code-sanity@main | |
with: | |
golangci-lint-configfile: ".golangci.yaml" | |
tools-directory: "./provd/tools" | |
working-directory: "./provd" | |
- name: Build cmd/provd | |
run: | | |
set -eu | |
cd provd | |
go build ./cmd/provd | |
go-tests: | |
name: "Go: Tests" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version-file: "./provd/go.mod" | |
- name: Run tests | |
run: | | |
set -eu | |
cd provd | |
go test -coverpkg=./... -coverprofile=/tmp/coverage.out -covermode=set ./... -shuffle=on | |
- name: Run tests (with race detector) | |
run: | | |
cd provd | |
go test -race ./... | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
file: /tmp/coverage.out | |
flags: provd |