-
Notifications
You must be signed in to change notification settings - Fork 2
141 lines (141 loc) · 5.58 KB
/
ci.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: CI
on: [push, pull_request]
jobs:
build-test:
runs-on: windows-latest
permissions:
contents: write
defaults:
run:
shell: bash --noprofile --norc -e -o pipefail -o igncr {0}
env:
PATH: C:\cygwin\bin
strategy:
matrix:
enable-case-sensitivity:
- ''
- YesPlease
fail-fast: false
steps:
- name: Install Git, cygport, and packages for building cygport
uses: cygwin/cygwin-install-action@v2
with:
packages: >
git cygport R aspell automake bison cmake cvs diffstat dos2unix
extra-cmake-modules flex flexdll fontforge gcc-g++ git
git-archive-all gnome-common gobject-introspection help2man
httpd-devel kf5-kdoctools libGL-devel libGeoIP-devel
libKF5XmlGui-devel libQt5Core-devel libQt5Svg-devel
libQtCore4-devel libQtGui4-devel libQtNetwork4-devel
libQtTest4-devel libQtXml4-devel libRmath libbz2-devel
libcairomm1.0-devel libcrypt-devel libgdk_pixbuf2.0-devel
libgirepository1.0-devel libglibmm2.4-devel libicu-devel
liblua-devel liblzma-devel libnotify-devel libpango1.0-devel
libpcre2-devel libqca-devel libqca-qt5-devel libtirpc-devel
libxfce4ui1-devel libxfconf0-devel lndir lua make mate-common
mercurial meson mingw64-i686-gcc-core mingw64-i686-qt5-base
mingw64-i686-qt5-tools mm-common monotone ninja ocaml ocaml-dune
ocaml-findlib patch perl perl-Module-Build php-PEAR python38-devel
python27-wheel python37-pip python37-setuptools python37-wheel
python38-pip python38-setuptools python38-wheel python38-pygments
python39-pip python39-setuptools python39-wheel robodoc ruby
ruby-rack subversion unzip xfce4-dev-tools xfce4-panel-devel
timeout-minutes: 30
- name: Manually configure safe.directory
run: git config --global --add safe.directory '*'
timeout-minutes: 1
- name: Checkout
uses: actions/checkout@v3
with:
set-safe-directory: false # actions/checkout otherwise tries to use the wrong config file, per actions/checkout#767
timeout-minutes: 1
- name: Cygport cygport download
env:
case_sensitivity: ${{ matrix.enable-case-sensitivity }}
run: |
[[ "$case_sensitivity" ]] && export _ENABLE_CASE_SENSITIVITY=YesPlease
cygport cygport.cygport download
timeout-minutes: 5
- name: Cygport cygport prep
env:
case_sensitivity: ${{ matrix.enable-case-sensitivity }}
run: |
[[ "$case_sensitivity" ]] && export _ENABLE_CASE_SENSITIVITY=YesPlease
cygport cygport.cygport prep
timeout-minutes: 1
- name: Cygport cygport compile
env:
case_sensitivity: ${{ matrix.enable-case-sensitivity }}
run: |
[[ "$case_sensitivity" ]] && export _ENABLE_CASE_SENSITIVITY=YesPlease
cygport cygport.cygport compile
timeout-minutes: 10
- name: Cygport cygport install
env:
case_sensitivity: ${{ matrix.enable-case-sensitivity }}
run: |
[[ "$case_sensitivity" ]] && export _ENABLE_CASE_SENSITIVITY=YesPlease
cygport cygport.cygport install
timeout-minutes: 5
- name: Install cygport from the install directory
run: |
cd cygport-*-*.noarch/inst
cp -vr usr etc /
- name: Tar up cygport build results
if: always()
run: tar -caf cygport-build-results-${{ matrix.enable-case-sensitivity }}.txz --exclude-vcs cygport-*-*.noarch
timeout-minutes: 10
- name: Store cygport build results
if: always()
uses: actions/upload-artifact@v3
with:
name: cygport-${{ matrix.enable-case-sensitivity }}
path: cygport-build-results-${{ matrix.enable-case-sensitivity }}.txz
if-no-files-found: error
timeout-minutes: 10
- name: Load variables from the cygport file
run: |
eval "$(cygport git.cygport vars BUILD_REQUIRES PVR)"
printf 'BUILD_REQUIRES=%s\n' "$BUILD_REQUIRES" >>"$GITHUB_ENV"
printf 'PVR=%s\n' "$PVR" >>"$GITHUB_ENV"
timeout-minutes: 1
- name: Install Cygwin build requirements
uses: cygwin/cygwin-install-action@v2
with:
packages: ${{ env.BUILD_REQUIRES }}
timeout-minutes: 30
- name: Generate cygcheck output
if: always()
run: cygcheck -srv >/var/log/cygcheck.out
timeout-minutes: 5
- name: Store Cygwin logs
if: always()
uses: actions/upload-artifact@v3
with:
name: cygwin-logs-${{ matrix.enable-case-sensitivity }}
path: 'C:\cygwin\var\log\'
timeout-minutes: 5
- name: Cygport download
run: cygport git.cygport download
timeout-minutes: 5
- name: Cygport prep
run: cygport git.cygport prep
timeout-minutes: 1
- name: Cygport compile
run: cygport git.cygport compile
timeout-minutes: 30
- name: Cygport test
run: cygport git.cygport test
timeout-minutes: 300
- name: Tar up build results
if: always()
run: tar -caf git-build-results.txz git-*-*.*/
timeout-minutes: 10
- name: Store build results
if: always()
uses: actions/upload-artifact@v3
with:
name: build-results-${{ matrix.enable-case-sensitivity }}
path: git-build-results.txz
if-no-files-found: error
timeout-minutes: 5