Skip to content

Commit 305c86d

Browse files
authored
Merge pull request #204 from SM2A/setup-ci
Setup CI
2 parents 01bfd31 + 1418739 commit 305c86d

File tree

4 files changed

+134
-84
lines changed

4 files changed

+134
-84
lines changed

.github/workflows/build.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
paths-ignore:
6+
- "CONTRIB"
7+
- "LICENSE"
8+
- "PRIVACY"
9+
- "README.md"
10+
pull_request:
11+
branches: [ "master" ]
12+
workflow_dispatch:
13+
14+
jobs:
15+
build:
16+
name: Build
17+
runs-on: ubuntu-latest
18+
steps:
19+
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Setup Java
24+
uses: actions/setup-java@v4
25+
with:
26+
java-version: '17'
27+
distribution: 'temurin'
28+
29+
- name: Setup Bazel
30+
uses: bazel-contrib/[email protected]
31+
with:
32+
bazelisk-cache: true
33+
disk-cache: ${{ github.workflow }}
34+
repository-cache: true
35+
36+
- name: Build
37+
run: |
38+
chmod +x build.sh
39+
./build.sh
40+
41+
- name: Test
42+
run: bazel test :all
43+
44+
- name: Set environments
45+
run: |
46+
{
47+
echo "commit=$(echo ${{ github.sha }} | cut -c-7)"
48+
echo "repo=$(echo ${GITHUB_REPOSITORY#$GITHUB_REPOSITORY_OWNER/})"
49+
echo "version=v$(grep -o 'android:versionName="[^"]*"' src/main/AndroidManifest.xml | awk -F'"' '{print $2}')"
50+
} >> $GITHUB_ENV
51+
52+
- name: Upload APK
53+
uses: actions/upload-artifact@v4
54+
with:
55+
name: ${{ env.repo }}-${{ env.version }}@${{ env.commit }}
56+
path: bazel-bin/*.apk

BUILD

Lines changed: 57 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,13 @@ android_library(
4848
android_library(
4949
name = "test_deps",
5050
exports = [
51-
artifact("com.google.testparameterinjector:test-parameter-injector"),
52-
artifact("com.google.truth:truth"),
53-
artifact("androidx.test:core"),
54-
artifact("androidx.test:monitor"),
55-
artifact("androidx.test:runner"),
56-
artifact("junit:junit"),
57-
artifact("org.hamcrest:java-hamcrest"),
58-
artifact("org.robolectric:robolectric"),
59-
artifact("org.robolectric:robolectric-annotations"),
60-
artifact("org.robolectric:shadows-core"),
51+
"@maven//:org_robolectric_robolectric",
6152
"@robolectric//bazel:android-all",
53+
"@maven//:org_robolectric_annotations",
54+
"@maven//:org_robolectric_shadows_framework",
55+
"@maven//:com_google_truth_truth",
56+
"@maven//:androidx_test_core",
57+
"@maven//:com_google_testparameterinjector_test_parameter_injector"
6258
],
6359
)
6460

@@ -126,64 +122,57 @@ java_library(
126122
srcs = ["src/test/java/com/afwsamples/testdpc/util/flags/Utils.java"],
127123
)
128124

129-
#
130-
#android_local_test(
131-
# name = "PermissionsHelperTest",
132-
# srcs = ["src/test/java/com/afwsamples/testdpc/common/PermissionsHelperTest.java"],
133-
# manifest = MANIFEST,
134-
# deps = [
135-
# ":test_deps",
136-
# ":testdpc_lib",
137-
# "@robolectric//bazel:android-all",
138-
# ],
139-
#)
140-
#
141-
#android_local_test(
142-
# name = "AppStatesServiceTest",
143-
# srcs = ["src/test/java/com/afwsamples/testdpc/feedback/AppStatesServiceTest.java"],
144-
# manifest = MANIFEST,
145-
# deps = [
146-
# ":androidx_deps",
147-
# ":test_deps",
148-
# ":testdpc_lib",
149-
# "@robolectric//bazel:android-all",
150-
# ],
151-
#)
152-
#
153-
#android_local_test(
154-
# name = "WifiConfigUtilTest",
155-
# srcs = ["src/test/java/com/afwsamples/testdpc/policy/wifimanagement/WifiConfigUtilTest.java"],
156-
# manifest = MANIFEST,
157-
# deps = [
158-
# ":test_deps",
159-
# ":testdpc_lib",
160-
# "@robolectric//bazel:android-all",
161-
# ],
162-
#)
163-
#
164-
#android_local_test(
165-
# name = "GetProvisioningModeActivityTest",
166-
# srcs = ["src/test/java/com/afwsamples/testdpc/provision/GetProvisioningModeActivityTest.java"],
167-
# manifest = MANIFEST,
168-
# test_class = "com.afwsamples.testdpc.provision.GetProvisioningModeActivityTest",
169-
# deps = [
170-
# ":test_deps",
171-
# ":testdpc_lib",
172-
# ],
173-
#)
174-
#
175-
#android_local_test(
176-
# name = "GetProvisioningModeActivityTest",
177-
# srcs = ["src/test/java/com/afwsamples/testdpc/provision/GetProvisioningModeActivityTest.java"],
178-
# manifest = MANIFEST,
179-
# test_class = "com.afwsamples.testdpc.provision.GetProvisioningModeActivityTest",
180-
# deps = [
181-
# ":test_deps",
182-
# ":testdpc_lib",
183-
# "@maven//:org_robolectric_robolectric",
184-
# "@robolectric//bazel:android-all",
185-
# ],
186-
#)
125+
126+
android_local_test(
127+
name = "PermissionsHelperTest",
128+
srcs = ["src/test/java/com/afwsamples/testdpc/common/PermissionsHelperTest.java"],
129+
manifest = MANIFEST,
130+
deps = [
131+
":test_deps",
132+
":testdpc_lib",
133+
"@robolectric//bazel:android-all",
134+
],
135+
custom_package = "com.afwsamples.testdpc.common"
136+
)
137+
138+
android_local_test(
139+
name = "AppStatesServiceTest",
140+
srcs = ["src/test/java/com/afwsamples/testdpc/feedback/AppStatesServiceTest.java"],
141+
manifest = MANIFEST,
142+
deps = [
143+
":androidx_deps",
144+
":test_deps",
145+
":testdpc_lib",
146+
"@robolectric//bazel:android-all",
147+
],
148+
custom_package = "com.afwsamples.testdpc.feedback"
149+
)
150+
151+
android_local_test(
152+
name = "WifiConfigUtilTest",
153+
srcs = ["src/test/java/com/afwsamples/testdpc/policy/wifimanagement/WifiConfigUtilTest.java"],
154+
manifest = MANIFEST,
155+
deps = [
156+
":test_deps",
157+
":testdpc_lib",
158+
"@robolectric//bazel:android-all",
159+
],
160+
custom_package = "com.afwsamples.testdpc.policy.wifimanagement"
161+
)
162+
163+
android_local_test(
164+
name = "GetProvisioningModeActivityTest",
165+
srcs = ["src/test/java/com/afwsamples/testdpc/provision/GetProvisioningModeActivityTest.java"],
166+
manifest = MANIFEST,
167+
test_class = "com.afwsamples.testdpc.provision.GetProvisioningModeActivityTest",
168+
deps = [
169+
":test_deps",
170+
":testdpc_lib",
171+
"@maven//:org_robolectric_robolectric",
172+
"@robolectric//bazel:android-all",
173+
],
174+
custom_package = "com.afwsamples.testdpc.provision"
175+
)
187176

188177
java_test(
189178
name = "BooleanParserTest",

WORKSPACE

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,6 @@ android_sdk_repository(
88
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
99
load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external")
1010

11-
http_archive(
12-
name = "robolectric",
13-
sha256 = "1ea1cfe67848decf959316e80dd69af2bbaa359ae2195efe1366cbdf3e968356",
14-
strip_prefix = "robolectric-bazel-4.11.1",
15-
urls = ["https://github.com/robolectric/robolectric-bazel/releases/download/4.11.1/robolectric-bazel-4.11.1.tar.gz"],
16-
)
17-
18-
load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
19-
20-
robolectric_repositories()
21-
2211
RULES_JVM_EXTERNAL_TAG = "4.5"
2312

2413
RULES_JVM_EXTERNAL_SHA = "b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6"
@@ -41,6 +30,16 @@ rules_jvm_external_setup()
4130
load("@rules_jvm_external//:defs.bzl", "maven_install")
4231
load("@rules_jvm_external//:specs.bzl", "maven")
4332

33+
http_archive(
34+
name = "robolectric",
35+
urls = ["https://github.com/robolectric/robolectric-bazel/archive/4.7.3.tar.gz"],
36+
strip_prefix = "robolectric-bazel-4.7.3",
37+
)
38+
39+
load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
40+
41+
robolectric_repositories()
42+
4443
maven_install(
4544
name = "maven",
4645
artifacts = [
@@ -66,16 +65,16 @@ maven_install(
6665
"com.google.android.material:material:1.6.1",
6766
"com.google.guava:guava:31.1-android",
6867
"com.google.testparameterinjector:test-parameter-injector:1.15",
69-
"com.google.truth:truth:1.1.3",
7068
"com.google.errorprone:error_prone_annotations:2.26.1",
7169
"junit:junit:4.13.2",
7270
"javax.inject:javax.inject:1",
7371
"org.hamcrest:java-hamcrest:2.0.0.0",
74-
"org.robolectric:robolectric:4.9.2",
7572
"org.robolectric:robolectric-annotations:3.3.2",
7673
"org.robolectric:shadows-core:3.3.2",
7774
"org.bouncycastle:bcpkix-jdk15on:1.70",
7875
"org.bouncycastle:bcprov-jdk15on:1.70",
76+
"org.robolectric:robolectric:4.2",
77+
"com.google.truth:truth:1.4.2"
7978
],
8079
repositories = [
8180
"https://maven.google.com",

src/test/java/com/afwsamples/testdpc/common/PermissionsHelperTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import android.os.Build.VERSION_CODES;
3030
import androidx.test.core.app.ApplicationProvider;
3131
import org.junit.Test;
32+
import org.junit.Before;
3233
import org.junit.runner.RunWith;
3334
import org.robolectric.RobolectricTestRunner;
3435
import org.robolectric.annotation.Config;
@@ -38,9 +39,8 @@
3839
@Config(minSdk = VERSION_CODES.Q)
3940
public class PermissionsHelperTest {
4041

41-
private static final ComponentName TESTDPC_ADMIN =
42-
new ComponentName("com.afwsamples.testdpc", "TestCls");
43-
private static final ComponentName NON_TESTDPC_ADMIN = new ComponentName("TestPkg", "TestCls");
42+
private ComponentName TESTDPC_ADMIN = null;
43+
private ComponentName NON_TESTDPC_ADMIN = null;
4444

4545
private final Context mContext = ApplicationProvider.getApplicationContext();
4646
private final DevicePolicyManager mDevicePolicyManager =
@@ -53,6 +53,12 @@ public class PermissionsHelperTest {
5353
private static final String NORMAL_PERMISSION = permission.ACCESS_WIFI_STATE;
5454
private static final String MISSING_INFO_PERMISSION = permission.CHANGE_WIFI_STATE;
5555

56+
@Before
57+
public void initialize() {
58+
TESTDPC_ADMIN = new ComponentName("com.afwsamples.testdpc", "TestCls");
59+
NON_TESTDPC_ADMIN = new ComponentName("TestPkg", "TestCls");
60+
}
61+
5662
@Test
5763
public void
5864
ensureRequiredPermissions_ifPermissionMissingFromManifest_shouldReturnFalseAndLogError() {

0 commit comments

Comments
 (0)