-
Notifications
You must be signed in to change notification settings - Fork 0
139 lines (112 loc) · 3.74 KB
/
tested-build.yml
File metadata and controls
139 lines (112 loc) · 3.74 KB
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
name: Tested Build
on:
workflow_dispatch:
env:
ContinuousIntegrationBuild: true
DOTNET_NOLOGO: true
SuppressNETCoreSdkPreviewMessage: true
jobs:
platform-build:
name: Platform Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2022, macos-latest]
steps:
- uses: actions/checkout@v4
# Avoid wasting type on updating man pages which are not used anyway
- run: sudo rm -f /var/lib/man-db/auto-update
if: runner.os == 'Linux'
- name: Setup prerequisites
uses: ./.github/actions/setup-prerequisites
# - name: Setup MSYS2
# if: runner.os == 'Windows'
# uses: msys2/setup-msys2@v2
- name: Setup Cygwin
if: runner.os == 'Windows'
uses: cygwin/cygwin-install-action@v6
- name: Setup GNU
if: runner.os == 'macOS'
run: |
brew install gnu-sed
- name: Diagnostic
run: |
just gnu-tk list -q
just gnu-tk check -q
- name: Diagnostic (Windows)
if: runner.os == 'Windows'
run: |
just gnu-tk check -q -t busybox
just gnu-tk check -q -t msys2
just gnu-tk check -q -t cygwin
just gnu-tk check -q -t git
- name: Diagnostic (macOS)
if: runner.os == 'macOS'
run: |
just gnu-tk check -q -t system
just gnu-tk check -q -t brew
echo "sed: $(just gnu-tk -l which sed)"
- name: Diagnostic (Linux)
if: runner.os == 'Linux'
run: |
just gnu-tk check -q -t system
- name: Test
run: just test
- name: Build platform-dependent artifacts
env:
GP_OSS_MANUFACTURER: ${{ vars.GP_OSS_MANUFACTURER }}
GP_OSS_SWID_REGID: ${{ vars.GP_OSS_SWID_REGID }}
GP_OSS_PROJECT_MSI_UPGRADE_CODE: ${{ vars.GP_OSS_PROJECT_MSI_UPGRADE_CODE }}
GP_OSS_PROJECT_DEV_URL: ${{ secrets.GP_OSS_PROJECT_DEV_URL }}
run: just platform-build
- uses: actions/upload-artifact@v4
with:
name: gnu-tk-artifacts-${{ matrix.os }}
path: |
Source/**/bin/Release/**/publish/
Source/**/bin/*/Release/*/*.msi
!Source/**/*.pdb
!Source/**/*.dbg
!Source/**/*.dSYM
if-no-files-found: error
publish:
name: Publish
needs: platform-build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Avoid wasting type on updating man pages which are not used anyway
- run: sudo rm -f /var/lib/man-db/auto-update
- name: Setup prerequisites
uses: ./.github/actions/setup-prerequisites
- run: sudo apt-get install -y xq
- name: Setup security environment
env:
GP_OSS_ASSEMBLY_SNK: ${{ secrets.GP_OSS_ASSEMBLY_SNK }}
run: |
echo $GP_OSS_ASSEMBLY_SNK | base64 --decode > gp-oss-assembly.snk
- name: Create .env file
run: |
cat <<EOF >.env
AssemblyOriginatorKeyFile=`pwd`/gp-oss-assembly.snk
EOF
- name: Publish artifacts
run: just publish
- uses: actions/download-artifact@v4
with:
path: Source
merge-multiple: true
- name: Publish platform-dependent artifacts
run: just platform-publish
- uses: actions/upload-artifact@v4
with:
name: gnu-tk-artifacts-publish
path: |
Documentation/CHANGELOG.md
Source/**/bin/Release/nuget/*.nupkg
Source/Packaging/**/bin/*.zip
Source/Packaging/**/bin/*.tar.gz
Source/Packaging/**/bin/*.tgz
Source/Packaging/**/bin/*.msi
Source/Packaging/**/bin/*SUMS
if-no-files-found: error