26
26
id : define_release_channels
27
27
with :
28
28
script : |
29
- return [' stable', ' experimental' ];
29
+ return [" stable", " experimental" ];
30
30
31
31
build :
32
32
name : yarn build
@@ -51,12 +51,16 @@ jobs:
51
51
key : ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }}
52
52
- run : yarn install --frozen-lockfile
53
53
- run : yarn build --b=${{ matrix.bundle_type }} --r=${{ matrix.release_channel }} --ci=github
54
+ env :
55
+ CI : github
56
+ - name : Display structure of build
57
+ run : ls -R build
54
58
- name : Archive build
55
59
uses : actions/upload-artifact@v4
56
60
with :
57
- name : ${{ matrix.bundle_type }}- ${{ matrix.release_channel }}
61
+ name : ${{ matrix.bundle_type }}_ ${{ matrix.release_channel }}
58
62
path : |
59
- build/**
63
+ build
60
64
61
65
lint_build :
62
66
name : yarn lint-build
65
69
matrix :
66
70
bundle_type : ${{ fromJSON(needs.define_build_params.outputs.bundle_type) }}
67
71
release_channel : ${{ fromJSON(needs.define_build_params.outputs.release_channel) }}
72
+ continue-on-error : true
68
73
runs-on : ubuntu-latest
69
74
steps :
70
75
- uses : actions/checkout@v4
79
84
with :
80
85
path : " **/node_modules"
81
86
key : ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }}
87
+ - run : yarn install --frozen-lockfile
82
88
- name : Restore archived build
83
89
uses : actions/download-artifact@v4
84
90
with :
85
- name : ${{ matrix.bundle_type }}-${{ matrix.release_channel }}
86
- - run : yarn install --frozen-lockfile
91
+ name : ${{ matrix.bundle_type }}_${{ matrix.release_channel }}
92
+ path : build
93
+ - name : Display structure of build
94
+ run : ls -R build
87
95
- run : yarn lint-build
96
+
97
+ test_build :
98
+ name : yarn test-build
99
+ needs : build
100
+ strategy :
101
+ matrix :
102
+ test_params : [
103
+ # Intentionally passing these as strings instead of creating a
104
+ # separate parameter per CLI argument, since it's easier to
105
+ # control/see which combinations we want to run.
106
+ -r=stable --env=development,
107
+ -r=stable --env=production,
108
+ -r=experimental --env=development,
109
+ -r=experimental --env=production,
110
+
111
+ # Dev Tools
112
+ --project=devtools -r=experimental,
113
+
114
+ # TODO: Update test config to support www build tests
115
+ # - "-r=www-classic --env=development --variant=false"
116
+ # - "-r=www-classic --env=production --variant=false"
117
+ # - "-r=www-classic --env=development --variant=true"
118
+ # - "-r=www-classic --env=production --variant=true"
119
+ # - "-r=www-modern --env=development --variant=false"
120
+ # - "-r=www-modern --env=production --variant=false"
121
+ # - "-r=www-modern --env=development --variant=true"
122
+ # - "-r=www-modern --env=production --variant=true"
123
+
124
+ # TODO: Update test config to support xplat build tests
125
+ # - "-r=xplat --env=development --variant=false"
126
+ # - "-r=xplat --env=development --variant=true"
127
+ # - "-r=xplat --env=production --variant=false"
128
+ # - "-r=xplat --env=production --variant=true"
129
+
130
+ # TODO: Test more persistent configurations?
131
+ ]
132
+ continue-on-error : true
133
+ runs-on : ubuntu-latest
134
+ steps :
135
+ - uses : actions/checkout@v4
136
+ - uses : actions/setup-node@v4
137
+ with :
138
+ node-version : 18.x
139
+ cache : " yarn"
140
+ cache-dependency-path : yarn.lock
141
+ - name : Restore cached node_modules
142
+ uses : actions/cache@v4
143
+ id : node_modules
144
+ with :
145
+ path : " **/node_modules"
146
+ key : ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }}
147
+ - run : yarn install --frozen-lockfile
148
+ - name : Restore archived build
149
+ uses : actions/download-artifact@v4
150
+ with :
151
+ path : build
152
+ merge-multiple : true
153
+ - name : Display structure of build
154
+ run : ls -R build
155
+ - run : yarn test --build ${{ matrix.test_params }} --ci=github
156
+
0 commit comments