Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 16 additions & 84 deletions .github/workflows/ci-integration-tests.yml
Original file line number Diff line number Diff line change
@@ -1,95 +1,18 @@
name: "CI - Integration Tests"

on:
push:
paths:
# NOTE: GitHub Actions do not allow using YAML references, the same path
# list is used below for the pull request event. Keep both lists in sync!!

# this file itself
- .github/workflows/ci-integration-tests.yml

# the web frontend
- web/**.json
- web/**.html
- web/**.scss
- web/**.jsx?
# ignore unit tests, we do not run them here
- "!web/**.test.jsx?"
- web/Makefile

# the service backend
- setup-service.sh
- service/lib/**.rb
- service/bin/agamactl
- service/Gemfile*
- service/*.gemspec
# D-Bus and systemd configs
- service/share/*.conf
- service/share/*.service
# Rust services
- rust/Cargo.lock
- rust/agama-dbus-server/**
- rust/agama-locale-data/**
- rust/agama-lib/**
# ignore the JSON profile and the examples
- "!rust/agama-lib/share/**"
- rust/share/*.service

# the playwright tests and configs
- playwright/**.ts
- playwright/config/agama.yaml

pull_request:
paths:
# NOTE: GitHub Actions do not allow using YAML references, the same path
# list is used above for the push event. Keep both lists in sync!!

# this file itself
- .github/workflows/ci-integration-tests.yml

# the web frontend
- web/**.json
- web/**.html
- web/**.scss
- web/**.jsx?
# ignore unit tests, we do not run them here
- "!web/**.test.jsx?"
- web/Makefile

# the service backend
- setup-service.sh
- service/lib/**.rb
- service/bin/agamactl
- service/Gemfile*
- service/*.gemspec
# D-Bus and systemd configs
- service/share/*.conf
- service/share/*.service
# Rust services
- rust/Cargo.lock
- rust/agama-dbus-server/**
- rust/agama-locale-data/**
- rust/agama-lib/**
# ignore the JSON profile and the examples
- "!rust/agama-lib/share/**"
- rust/share/*.service

# the playwright tests and configs
- playwright/**.ts
- playwright/config/agama.yaml
schedule:
# at 10:50 every day from Monday to Friday
- cron: "50 10 * * 1-5"

# allow running manually
workflow_dispatch:

jobs:
integration-tests:
timeout-minutes: 60
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
# TW is needed because of the Cockpit packages
distro: [ "tumbleweed" ]

steps:

# TODO: Reuse/share building the frontend and backend with the other steps
Expand Down Expand Up @@ -154,11 +77,20 @@ jobs:

- name: Upload the test results
uses: actions/upload-artifact@v3
# run even when the previous step fails
# run even when any previous step fails
if: always()
with:
name: test-results
retention-days: 30
path: |
playwright/test-results/**/*
/tmp/log/YaST2/y2log

- name: IRC notification
# see https://github.com/marketplace/actions/irc-message-action
uses: Gottox/irc-message-action@v2
if: failure()
with:
channel: "#yast"
nickname: github-action
message: "Agama integration test failed: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"