-
Notifications
You must be signed in to change notification settings - Fork 1
95 lines (90 loc) · 3.27 KB
/
test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
name: CI
on:
push:
branches-ignore:
- '*travis*'
- '*appveyor*'
- '*doozer*'
pull_request:
workflow_dispatch:
jobs:
test:
name: ${{ matrix.os }} + ${{ matrix.window_manager }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: 'ubuntu-20.04'
window_manager: 'kwin'
- os: 'ubuntu-22.04'
window_manager: 'fvwm'
- os: 'ubuntu-24.04'
window_manager: 'twm'
steps:
- name: apt hacks
# removing non-needed apt repositories may speed up "apt-get update"
# also, 3rd party repositories might be unreliable
run: |
sudo rm -f /etc/apt/sources.list.d/*.list
sudo apt-get update -qq
if: "startsWith(matrix.os, 'ubuntu-')"
- uses: taiki-e/checkout-action@v1
- name: Preinstall
env:
WINDOW_MANAGER: ${{ matrix.window_manager }}
run: |
set -e
sudo apt-get install -qq --no-install-recommends cpanminus xvfb perl-tk $([ "$WINDOW_MANAGER" = "kwin" ] && echo -n "kwin-x11" || echo -n $WINDOW_MANAGER)
cpanm --sudo --quiet --installdeps --notest . || ( cat ~/.cpanm/work/*/build.log; false )
- name: Configure, Build and Test
env:
HARNESS_TIMER: 1
HARNESS_OPTIONS: j8
WINDOW_MANAGER: ${{ matrix.window_manager }}
run: |
Xvfb :123 &
export DISPLAY=:123
(sleep 10; $WINDOW_MANAGER) &
perl Makefile.PL
make -j8
make test
if: "!startsWith(matrix.os,'windows-')"
test_in_container:
name: Test with perl ${{ matrix.perlimage }}
runs-on: ubuntu-latest
container: perl:${{ matrix.perlimage }}
strategy:
matrix:
include:
- perlimage: 5.8.9-threaded-stretch
- perlimage: 5.10.1-buster
- perlimage: 5.12.5-stretch
- perlimage: 5.14.4-stretch
- perlimage: 5.16.3-buster
- perlimage: 5.18.4-buster
- perlimage: 5.22.4-stretch
- perlimage: 5.36.0-bullseye
- perlimage: 5.40.0-bookworm
steps:
- name: apt hacks
run: |
set -e
CODENAME=$(perl -nle '/^VERSION_CODENAME="?([^"]+)/ and $codename=$1; /^VERSION="\d+ \((.*)\)/ and $maybe_codename=$1; END { print $codename || $maybe_codename }' /etc/os-release)
case "$CODENAME" in
wheezy|jessie|stretch)
echo "APT::Get::AllowUnauthenticated 1;" > /etc/apt/apt.conf.d/02allow-unsigned
echo "deb [check-valid-until=no] http://archive.debian.org/debian $CODENAME main" > /etc/apt/sources.list
echo "deb [check-valid-until=no] http://archive.debian.org/debian-security/ $CODENAME/updates main" >> /etc/apt/sources.list
;;
esac
- uses: taiki-e/checkout-action@v1
- name: "build and test"
run: |
apt-get update -qq && apt-get install -qq --no-install-recommends cpanminus xvfb libx11-dev libfreetype6-dev libxft-dev libpng-dev libz-dev libjpeg-dev twm
cpanm --quiet --installdeps --notest . || ( cat ~/.cpanm/work/*/build.log; false )
Xvfb :123 &
export DISPLAY=:123
(sleep 10; twm) &
perl Makefile.PL
make -j8
HARNESS_TIMER=1 HARNESS_OPTIONS=j8 make test