react-native-cache-build-gitlab 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,43 +21,52 @@ yarn add react-native-cache-build-gitlab
21
21
 
22
22
  In your `rock.config.mjs`:
23
23
 
24
- ```javascript
25
- import { platformIOS } from "@rock-js/platform-ios";
26
- import { platformAndroid } from "@rock-js/platform-android";
27
- import { providerGitLab } from "react-native-cache-build-gitlab";
28
- import { pluginMetro } from "@rock-js/plugin-metro";
24
+ ```ts
25
+ import {platformIOS} from "@rock-js/platform-ios";
26
+ import {platformAndroid} from "@rock-js/platform-android";
27
+ import {providerGitLab} from "react-native-cache-build-gitlab";
28
+ import {pluginMetro} from "@rock-js/plugin-metro";
29
29
 
30
30
  export default {
31
- bundler: pluginMetro(),
32
- platforms: {
33
- ios: platformIOS(),
34
- android: platformAndroid(),
35
- },
36
- remoteCacheProvider: providerGitLab({
37
- packageName: "mobile-artifacts",
38
- baseUrl: "https://gitlab.example.com",
39
- projectId: 1234,
40
- token: process.env.CI_JOB_TOKEN,
41
- tokenHeader: process.env.CI ? "JOB-TOKEN" : "PRIVATE-TOKEN",
42
- }),
31
+ bundler: pluginMetro(),
32
+ platforms: {
33
+ ios: platformIOS(),
34
+ android: platformAndroid(),
35
+ },
36
+ remoteCacheProvider: providerGitLab({
37
+ packageName: "mobile-artifacts",
38
+ baseUrl: "https://gitlab.example.com",
39
+ projectId: 1234,
40
+ token: process.env.CI_JOB_TOKEN,
41
+ tokenHeader: process.env.CI ? "JOB-TOKEN" : "PRIVATE-TOKEN",
42
+ }),
43
+ fingerprint: {
44
+ ignorePaths: [
45
+ "ios/Podfile.lock",
46
+ "ios/**/xcuserdata",
47
+ "ios/**/project.pbxproj",
48
+ // Add more paths to ignore as needed
49
+ ],
50
+ },
43
51
  };
44
52
  ```
45
53
 
46
54
  ## Configuration
47
55
 
48
- | Option | Type | Description |
49
- | ------------- | -------------------------------- | ----------------------------------------------- |
50
- | `packageName` | `string` | Package name in GitLab Generic Package Registry |
51
- | `baseUrl` | `string` | GitLab instance URL |
52
- | `projectId` | `number` | GitLab project ID |
53
- | `token` | `string` | GitLab access token (`CI_JOB_TOKEN` on CI) |
54
- | `tokenHeader` | `"JOB-TOKEN" \| "PRIVATE-TOKEN"` | Token type |
56
+ | Option | Type | Description |
57
+ | ------------- | -------------------------------- |-------------------------------------------------------------------------------------------------|
58
+ | `packageName` | `string` | Package name in GitLab Generic Package Registry |
59
+ | `baseUrl` | `string` | GitLab instance URL |
60
+ | `projectId` | `number` | GitLab project ID |
61
+ | `token` | `string` | GitLab personal access token (`CI_JOB_TOKEN` on CI), You have to export `CI_JOB_TOKEN` in local |
62
+ | | | |
63
+ | `tokenHeader` | `"JOB-TOKEN" \| "PRIVATE-TOKEN"` | Token type |
55
64
 
56
65
  ## How It Works
57
66
 
58
67
  ### Upload (CI)
59
68
 
60
- All builds are uploaded to a **single package** with version `1.0.0`:
69
+ All builds are uploaded to a **single package** with version `1.0.0` (Can change version if needed) at *Package Registry*.:
61
70
 
62
71
  ```
63
72
  mobile-artifacts@1.0.0/
@@ -80,7 +89,7 @@ When running:
80
89
  build_android_cache:
81
90
  stage: build
82
91
  script:
83
- - npx rock build:android --variant=devDebug
92
+ - bun run build:android --variant=devDebug
84
93
  - CACHE_DIR="$(ls -1dt .rock/cache/remote-build/rock-android-* | head -n1)"
85
94
  - sh scripts/upload-cache-remote.sh "${CACHE_DIR}" rock-android-devDebug-{FP}.zip android
86
95
  ```
@@ -89,7 +98,7 @@ build_android_cache:
89
98
 
90
99
  The official `@rock-js/provider-gitlab` creates **one package per fingerprint**, which can clutter the package registry.
91
100
 
92
- This provider stores **all builds in one package** (version `1.0.2`), using filename-based lookup instead of version-based lookup.
101
+ This provider stores **all builds in one package** (version `1.0.4`), using filename-based lookup instead of version-based lookup.
93
102
 
94
103
  ## License
95
104
 
@@ -6,8 +6,8 @@ export declare class GitLabBuildCache implements RemoteBuildCache {
6
6
  constructor(config?: {
7
7
  baseUrl: string;
8
8
  projectId: number | string;
9
- token: string;
10
- tokenHeader: "JOB-TOKEN" | "PRIVATE-TOKEN";
9
+ token?: string;
10
+ tokenHeader?: "JOB-TOKEN" | "PRIVATE-TOKEN";
11
11
  packageName: string;
12
12
  });
13
13
  getRepoDetails(): Promise<GitLabRepoDetails>;
@@ -30,7 +30,7 @@ export declare class GitLabBuildCache implements RemoteBuildCache {
30
30
  export declare const providerGitLab: (options?: {
31
31
  baseUrl: string;
32
32
  projectId: number;
33
- token: string;
34
- tokenHeader: "PRIVATE-TOKEN" | "JOB-TOKEN";
33
+ token?: string;
34
+ tokenHeader?: "PRIVATE-TOKEN" | "JOB-TOKEN";
35
35
  packageName: string;
36
36
  }) => () => RemoteBuildCache;
@@ -13,7 +13,8 @@ export class GitLabBuildCache {
13
13
  repoDetails = null;
14
14
  constructor(config) {
15
15
  if (config) {
16
- const token = process.env.CI_JOB_TOKEN;
16
+ const token = config.token ?? process.env.CI_JOB_TOKEN;
17
+ const tokenHeader = config.tokenHeader ?? (process.env.CI ? "JOB-TOKEN" : "PRIVATE-TOKEN");
17
18
  if (!token) {
18
19
  throw new Error("GitLab token is required. Set CI_JOB_TOKEN (CI) or GITLAB_PRIVATE_TOKEN/PRIVATE_TOKEN (local).");
19
20
  }
@@ -21,8 +22,8 @@ export class GitLabBuildCache {
21
22
  packageName: config.packageName,
22
23
  baseUrl: config.baseUrl,
23
24
  projectId: config.projectId,
24
- token: config.token,
25
- tokenHeader: config.tokenHeader,
25
+ token,
26
+ tokenHeader,
26
27
  };
27
28
  }
28
29
  }
@@ -44,7 +45,6 @@ export class GitLabBuildCache {
44
45
  }
45
46
  async download({ artifactName, }) {
46
47
  const repo = await this.getRepoDetails();
47
- // const { name, version } = parseName(artifactName);
48
48
  const { fingerprint } = parseRockArtifact(artifactName);
49
49
  if (!fingerprint)
50
50
  throw new Error("artifactName is required");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-cache-build-gitlab",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "types": "dist/index.d.ts",