@catladder/pipeline
Version:
Panter workflow for cloud CI/CD and DevOps
87 lines (80 loc) • 1.87 kB
text/typescript
import type { CacheConfig, Config } from "../src";
import type { CatladderJob } from "../src/types/jobs";
const APP_GEM_CACHE: CacheConfig[] = [
{
key: {
files: ["Gemfile.lock"],
},
paths: ["vendor"],
},
];
const config = {
appName: "test-app",
customerName: "pan",
components: {
app: {
dir: "app",
vars: {
public: {
GRAPHQL_URL: "${api:ROOT_URL}/graphql",
},
secret: [
"APP_STORE_CONNECT_API_KEY_CONTENT",
"APP_STORE_CONNECT_ISSUER_ID",
"APP_STORE_CONNECT_API_KEY_ID",
],
},
build: {
jobVars: {
public: {
LC_A: "L=en_US.UTF-8",
LANG: "en_US.UTF-8",
},
},
type: "node",
buildCommand: [
"bundle config set --local path 'vendor/ruby'",
"gem install bundler",
"bundle install",
"bundle exec pod install --project-directory=ios",
"bundle exec fastlane build",
],
jobTags: ["mac-runner"],
cache: APP_GEM_CACHE,
},
deploy: {
type: "custom",
jobVars: {
public: {
LC_A: "L=en_US.UTF-8",
LANG: "en_US.UTF-8",
},
},
requiresDocker: false,
script: [
"bundle config set --local path 'vendor/ruby'",
"gem install bundler",
"bundle install",
"bundle exec fastlane deploy_test",
],
jobTags: ["mac-runner"],
cache: APP_GEM_CACHE,
},
},
api: {
dir: "api",
build: {
type: "node",
},
deploy: {
type: "google-cloudrun",
projectId: "asdf",
region: "asia-east1",
},
},
},
} satisfies Config;
export default config;
export const information = {
title: "Native App",
};