Skip to content

monorepo: ci for ios #342

monorepo: ci for ios

monorepo: ci for ios #342

Workflow file for this run

name: basic-ci
on:
push:
branches:
- master
pull_request:
jobs:
# linux-build-libs-1:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - name: build-duet
# run: cd duet && swift build
# - name: build-pairql
# run: cd pairql && swift build
# - name: build-pairql-macapp
# run: cd pairql-macapp && swift build
# linux-build-libs-2:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - name: build-gertie
# run: cd gertie && swift build
# - name: build-ts-interop
# run: cd ts-interop && swift build
# - name: build-x-expect
# run: cd x-expect && swift build
# - name: build-x-http
# run: cd x-http && swift build
# - name: build-x-kit
# run: cd x-kit && swift build
# - name: build-x-postmark
# run: cd x-postmark && swift build
# - name: build-x-slack
# run: cd x-slack && swift build
# - name: build-x-stripe
# run: cd x-stripe && swift build
# linux-lib-test-libs-1:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - name: test-duet
# run: cd duet && swift test
# - name: test-pairql
# run: cd pairql && swift test
# linux-lib-test-libs-2:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - name: test-pairql-macapp
# run: cd pairql-macapp && swift test
# - name: test-ts-interop
# run: cd ts-interop && swift test
# - name: test-gertie
# run: cd gertie && swift test
# - name: test-x-http
# run: cd x-http && swift test
# - name: test-x-kit
# run: cd x-kit && swift test
# - name: test-x-slack
# run: cd x-slack && swift test
# linux-api-build:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - uses: actions/cache@v4
# with:
# path: api/.build
# key: api-build-${{ hashFiles('api/Package.resolved') }}
# restore-keys: api-build-
# - name: meta
# id: meta
# uses: friends-library/dev/actions/ts-pack/actions/meta@master
# with:
# github_token: ${{ github.token }}
# - name: set-env-vars
# run: |
# DATESTR=$(TZ=America/New_York date +'%Y.%m.%d_%H.%M')
# SHORTSHA=${{ steps.meta.outputs.latest_commit_sha_short }}
# if [ "${{ github.ref }}" = "refs/heads/master" ]; then
# API_ENV=production
# echo "SRCDIR=api/.build/release" >> $GITHUB_ENV
# echo "DESTDIR=builds/production" >> $GITHUB_ENV
# echo "CONFIGURATION=release" >> $GITHUB_ENV
# else
# API_ENV=staging
# echo "SRCDIR=api/.build/debug" >> $GITHUB_ENV
# echo "DESTDIR=builds/staging" >> $GITHUB_ENV
# echo "CONFIGURATION=debug" >> $GITHUB_ENV
# fi
# echo "FILENAME=api_${API_ENV}_${DATESTR}_${SHORTSHA}" >> $GITHUB_ENV
# - name: build-api
# run: |
# cd api && swift build --static-swift-stdlib -c $CONFIGURATION
# cd ../ && cp ${SRCDIR}/Run ${FILENAME}
# - name: scp-bin
# uses: appleboy/[email protected]
# with:
# host: api.gertrude.app
# username: ${{ secrets.API_SERVER_SSH_USER }}
# key: ${{ secrets.API_SERVER_SSH_KEY }}
# source: '${{ env.FILENAME }}'
# target: '${{ env.DESTDIR }}'
# - name: ssh-tasks
# uses: appleboy/[email protected]
# with:
# host: api.gertrude.app
# username: ${{ secrets.API_SERVER_SSH_USER }}
# key: ${{ secrets.API_SERVER_SSH_KEY }}
# envs: DESTDIR,FILENAME
# script: |
# ln -sf "./${FILENAME}" "${DESTDIR}/latest"
# chmod +x "${DESTDIR}/${FILENAME}" "${DESTDIR}/latest"
# cd ~/builds/production && ls -r api_* | grep -v $(basename $(readlink -f current)) | tail -n +11 | xargs rm
# cd ~/builds/staging && ls -r api_* | tail -n +6 | xargs rm
# pm2 restart staging > /dev/null
# linux-api-test:
# runs-on: namespace-profile-default
# container: swift:5.10-focal
# env:
# DATABASE_HOST: postgres
# AUTO_INCLUDED_KEYCHAIN_ID: 77777777-7777-7777-7777-777777777777
# SLACK_API_TOKEN: not-real
# services:
# postgres:
# image: postgres:latest
# env:
# POSTGRES_USER: vapor_username
# POSTGRES_PASSWORD: vapor_password
# POSTGRES_DB: vapor_database
# steps:
# - name: checkout
# uses: actions/checkout@v4
# # only restore, job:linux-api-build will save, to save execution time
# - uses: actions/cache/restore@v4
# with:
# path: api/.build
# key: api-test-${{ hashFiles('api/Package.resolved') }}
# restore-keys: api-test-
# - name: test-api
# run: cd api && swift test
# files-changed:
# runs-on: namespace-profile-default
# outputs:
# macapp: ${{ steps.changes.outputs.macapp }}
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - uses: dorny/paths-filter@v3
# id: changes
# with:
# filters: |
# macapp:
# - macapp/App/**
# - pairql-macapp/**
# - gertie/**
# - x-kit/**
# - ts-interop/**
# macapp-lib:
# needs: files-changed
# if: needs.files-changed.outputs.macapp == 'true'
# runs-on: macos-15
# steps:
# - name: checkout
# uses: actions/checkout@v4
# - name: setup xcode
# uses: maxim-lobanov/setup-xcode@v1
# with:
# xcode-version: 16.0.0
# - uses: actions/cache@v4
# with:
# path: macapp/App/.build
# key: macapp-xc16.0.0--${{ hashFiles('macapp/App/Package.resolved') }}
# restore-keys: macapp-xc16.0.0--
# - name: build
# run: cd macapp/App && swift build
# - name: test
# run: cd macapp/App && swift test
iosapp-lib:
runs-on: macos-14
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.3.0
- uses: actions/cache@v4
with:
path: iosapp/libios/.build
key: iosapp-xc15.3.0--${{ hashFiles('iosapp/libios/Package.resolved') }}
restore-keys: iosapp-xc15.3.0--
- name: build
run: cd iosapp/lib-ios && swift build
- name: test
run: cd iosapp/lib-ios && swift test
# env
env:
DATABASE_NAME: vapor_database
DATABASE_USERNAME: vapor_username
DATABASE_PASSWORD: vapor_password
TEST_DATABASE_NAME: vapor_database
CLOUD_STORAGE_KEY: not-real
CLOUD_STORAGE_SECRET: not-real
CLOUD_STORAGE_ENDPOINT: not-real
CLOUD_STORAGE_BUCKET: not-real
CLOUD_STORAGE_BUCKET_URL: /not-real
CLOUDFLARE_SECRET: not-real
TWILIO_ACCOUNT_SID: not-real
TWILIO_AUTH_TOKEN: not-real
TWILIO_FROM_PHONE: not-real
DASHBOARD_URL: /dashboard
ANALYTICS_SITE_URL: /analytics
POSTMARK_API_KEY: not-real
POSTMARK_SERVER_ID: 12345
PRIMARY_SUPPORT_EMAIL: not-real
SUPER_ADMIN_EMAIL: not-real
STRIPE_SUBSCRIPTION_PRICE_ID: not-real
STRIPE_SECRET_KEY: not-real
SWIFT_DETERMINISTIC_HASHING: 1