Skip to content

Commit 2596c6b

Browse files
committed
chore(CI)[sc-97669]: add CI to build releases. Matches the qt-build and qtwebkit-build CI.
1 parent 139b05a commit 2596c6b

File tree

1 file changed

+152
-0
lines changed

1 file changed

+152
-0
lines changed

.github/workflows/main.yml

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
---
2+
name: CI
3+
4+
on:
5+
pull_request:
6+
branches: [main]
7+
paths-ignore:
8+
- '**/*.md'
9+
push:
10+
tags:
11+
- v*
12+
13+
env:
14+
QTVERSION: 5.15.0-lts
15+
BUILD_CONFIG: "{
16+
'variables': {
17+
'QT5': '1',
18+
'WD_CONFIG_QWIDGET_BASE': '1',
19+
'WD_CONFIG_WEBKIT': '0',
20+
'WD_CONFIG_QUICK': '1',
21+
'WD_CONFIG_PLAYER': '0',
22+
'WD_CONFIG_ONE_KEYRELEASE': '0',
23+
'QT_INC_PATH': '/opt/qt5/include',
24+
'QT_BIN_PATH': '/opt/qt5/bin',
25+
'QT_LIB_PATH': '/opt/qt5/lib'
26+
},
27+
}"
28+
29+
jobs:
30+
tar-src:
31+
outputs:
32+
short_version: ${{ steps.config.outputs.short_version }}
33+
34+
name: "Tar source"
35+
runs-on: ubuntu-latest
36+
steps:
37+
- id: config
38+
run: |
39+
echo "artefact_name=qtwebdriver-${QTVERSION}-src.tar.gz" >> $GITHUB_OUTPUT
40+
echo "short_version=${QTVERSION}" >> $GITHUB_OUTPUT
41+
- name: checkout
42+
uses: actions/checkout@v4
43+
with:
44+
path: qtwebdriver-src
45+
- name: Archive
46+
run: tar --create --xz --file "${{ steps.config.outputs.artefact_name }}" --exclude-vcs qtwebdriver-src
47+
- name: Upload
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: "${{ steps.config.outputs.artefact_name }}"
51+
path: "${{ github.workspace }}/${{ steps.config.outputs.artefact_name }}"
52+
53+
build:
54+
name: "Build ${{ matrix.config.os }}"
55+
runs-on: ${{ matrix.config.os }}
56+
strategy:
57+
fail-fast: false
58+
matrix:
59+
config:
60+
- os: "ubuntu-22.04"
61+
std: "17"
62+
63+
steps:
64+
- id: config
65+
run: echo "artefact_name=qtwebdriver-${QTVERSION}-cpp${{ matrix.config.std }}-${{ matrix.config.os }}-x64.tar.gz" >> $GITHUB_OUTPUT
66+
- name: Install dependencies
67+
run: |
68+
sudo apt-get -o Acquire::Retries=3 update
69+
sudo apt-get -o Acquire::Retries=3 install -y \
70+
gyp \
71+
libegl1-mesa-dev \
72+
libglib2.0-dev \
73+
libgstreamer1.0-dev \
74+
libgstreamer-plugins-base1.0-dev \
75+
libhyphen-dev \
76+
libicu-dev \
77+
libjpeg-dev \
78+
libpng-dev \
79+
libxslt1-dev \
80+
- name: Install Qt
81+
run: curl -L https://github.com/constructpm/qt-build/releases/download/v5.15.8-lts-lgpl-1/qt-5.15.8-lts-lgpl-cpp17-${{ matrix.config.os }}x64.tar.gz | sudo tar -xJC /opt
82+
- name: Install Qtwebkit
83+
run: curl -L https://github.com/constructpm/qtwebkit-build/releases/download/v5.212.0-1/qtwebkit-d1c854e-cpp17-${{ matrix.config.os }}-x64.tar.gz | sudo tar xvJ -C /opt
84+
- name: checkout
85+
uses: actions/checkout@v4
86+
- name: Configure
87+
run: echo ${BUILDCONFIG} > wd.gypi
88+
- name: Build
89+
run: build.sh
90+
- name: Archive
91+
working-directory: ${{ github.workspace }}/opt
92+
run: tar cJfv "${{ steps.config.outputs.artefact_name }}" qtwebdriver
93+
- name: Upload
94+
uses: actions/upload-artifact@v4
95+
with:
96+
name: "${{ steps.config.outputs.artefact_name }}"
97+
path: "${{ github.workspace }}/opt/${{ steps.config.outputs.artefact_name }}"
98+
99+
release:
100+
if: contains(github.ref, 'tags/v')
101+
102+
name: Create Release
103+
runs-on: ubuntu-latest
104+
needs:
105+
- tar-src
106+
- build
107+
108+
outputs:
109+
upload_url: ${{ steps.create_release.outputs.upload_url }}
110+
111+
steps:
112+
- name: Create Release
113+
id: create_release
114+
uses: actions/create-release@v1.0.0
115+
env:
116+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
117+
with:
118+
tag_name: ${{ github.ref }}
119+
release_name: Release ${{ github.ref }}
120+
draft: false
121+
prerelease: false
122+
123+
upload:
124+
if: contains(github.ref, 'tags/v')
125+
126+
name: "Upload ${{ matrix.config.artefact }} to release"
127+
runs-on: ubuntu-latest
128+
strategy:
129+
fail-fast: false
130+
matrix:
131+
config:
132+
- artefact: qtwebdriver-${{ needs.tar-src.outputs.short_version }}-src.tar.gz
133+
- artefact: qtwebdriver-${{ needs.tar-src.outputs.short_version }}-cpp17-ubuntu-22.04-x64.tar.gz
134+
needs:
135+
- tar-src
136+
- release
137+
138+
steps:
139+
- name: Download artifact
140+
uses: actions/download-artifact@v4
141+
with:
142+
name: "${{ matrix.config.artefact }}"
143+
path: ./
144+
- name: Upload to Release
145+
uses: actions/upload-release-asset@v1.0.1
146+
env:
147+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
148+
with:
149+
upload_url: ${{ needs.release.outputs.upload_url }}
150+
asset_path: "./${{ matrix.config.artefact }}"
151+
asset_name: "${{ matrix.config.artefact }}"
152+
asset_content_type: application/x-gtar

0 commit comments

Comments
 (0)