Skip to content

Commit

Permalink
Bring back xcode beta 6 test suite but with reduced jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
calvincestari committed Jul 11, 2024
1 parent fc78ade commit ed6b71c
Showing 1 changed file with 107 additions and 191 deletions.
298 changes: 107 additions & 191 deletions .github/workflows/ci-tests-xcode-beta.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: "CI Tests (Xcode 16.0 Beta)"

on:
workflow_dispatch
pull_request:
types: [opened, synchronize, reopened]

env:
XCODE_VERSION: "16.0-beta"
Expand Down Expand Up @@ -84,124 +85,111 @@ jobs:
run: |
cd ${{ matrix.package }} && swift build
build-and-unit-test:
runs-on: macos-latest
needs: [tuist-generation, changes]
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
# macOS_current
- destination: platform=macOS,arch=x86_64
scheme: ApolloTests
test-plan: Apollo-CITestPlan
name: Apollo Unit Tests - macOS
run-js-tests: false
should-run: ${{ needs.changes.outputs.ios }}
# Codegen CLI Test
- destination: platform=macOS,arch=x86_64
scheme: CodegenCLITests
test-plan: CodegenCLITestPlan
name: Codegen CLI Unit Tests - macOS
run-js-tests: false
should-run: ${{ needs.changes.outputs.codegen }}
# CodegenLib Test
- destination: platform=macOS,arch=x86_64
scheme: ApolloCodegenTests
test-plan: Apollo-Codegen-CITestPlan
name: Codegen Lib Unit Tests - macOS
run-js-tests: true
should-run: ${{ needs.changes.outputs.codegen }}
# ApolloPagination Tests
- destination: platform=macOS,arch=x86_64
scheme: ApolloPaginationTests
test-plan: Apollo-PaginationTestPlan
name: ApolloPagination Unit Tests - macOS
run-js-tests: false
should-run: ${{ needs.changes.outputs.pagination }}
name: ${{ matrix.name }}
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Checkout Repo
uses: actions/checkout@v3
- name: Retrieve Build Cache
uses: actions/cache@v3
with:
path: |
./ApolloDev.xcodeproj
./ApolloDev.xcworkspace
./Derived/*
key: ${{ github.run_id }}-dependencies
fail-on-cache-miss: true
# Caching for apollo-ios and apollo-ios-codegen SPM dependencies
# - uses: actions/cache@v3
# with:
# path: ./DerivedData/SourcePackages
# key: ${{ runner.os }}-spm-${{ hashFiles('./apollo-ios/Package.resolved') }}-${{ hashFiles('./apollo-ios-codegen/Package.resolved') }}
# - name: Run Tuist Generation
# uses: tuist/[email protected]
# with:
# command: 'generate'
# arguments: ''
- name: Build and Test
if: ${{ matrix.should-run == true || matrix.should-run == 'true' }}
id: build-and-test
uses: ./.github/actions/build-and-run-unit-tests
with:
destination: ${{ matrix.destination }}
scheme: ${{ matrix.scheme }}
test-plan: ${{ matrix.test-plan }}
- name: Run-JS-Tests
if: ${{ matrix.run-js-tests == true }}
shell: bash
working-directory: apollo-ios-codegen/Sources/GraphQLCompiler/JavaScript/
run: |
npm install && npm test
- name: Save xcodebuild logs
if: ${{ steps.build-and-test.outcome != 'skipped' }}
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.name }}-logs
path: |
DerivedData/Logs/Build
- name: Save crash logs
if: ${{ steps.build-and-test.outcome != 'skipped' }}
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.name }}-crashes
path: |
~/Library/Logs/DiagnosticReports
- name: Zip Result Bundle
if: ${{ steps.build-and-test.outcome != 'skipped' }}
shell: bash
working-directory: TestResults
run: |
zip -r ResultBundle.zip ResultBundle.xcresult
- name: Save test results
if: ${{ steps.build-and-test.outcome != 'skipped' }}
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.name }}-results
path: |
TestResults/ResultBundle.zip
# build-and-unit-test:
# runs-on: macos-latest
# needs: [tuist-generation, changes]
# timeout-minutes: 20
# strategy:
# fail-fast: false
# matrix:
# include:
# # macOS_current
# - destination: platform=macOS,arch=x86_64
# scheme: ApolloTests
# test-plan: Apollo-CITestPlan
# name: Apollo Unit Tests - macOS
# run-js-tests: false
# should-run: ${{ needs.changes.outputs.ios }}
# # Codegen CLI Test
# - destination: platform=macOS,arch=x86_64
# scheme: CodegenCLITests
# test-plan: CodegenCLITestPlan
# name: Codegen CLI Unit Tests - macOS
# run-js-tests: false
# should-run: ${{ needs.changes.outputs.codegen }}
# # CodegenLib Test
# - destination: platform=macOS,arch=x86_64
# scheme: ApolloCodegenTests
# test-plan: Apollo-Codegen-CITestPlan
# name: Codegen Lib Unit Tests - macOS
# run-js-tests: true
# should-run: ${{ needs.changes.outputs.codegen }}
# # ApolloPagination Tests
# - destination: platform=macOS,arch=x86_64
# scheme: ApolloPaginationTests
# test-plan: Apollo-PaginationTestPlan
# name: ApolloPagination Unit Tests - macOS
# run-js-tests: false
# should-run: ${{ needs.changes.outputs.pagination }}
# name: ${{ matrix.name }}
# steps:
# - uses: maxim-lobanov/setup-xcode@v1
# with:
# xcode-version: ${{ env.XCODE_VERSION }}
# - name: Checkout Repo
# uses: actions/checkout@v3
# - name: Retrieve Build Cache
# uses: actions/cache@v3
# with:
# path: |
# ./ApolloDev.xcodeproj
# ./ApolloDev.xcworkspace
# ./Derived/*
# key: ${{ github.run_id }}-dependencies
# fail-on-cache-miss: true
# # Caching for apollo-ios and apollo-ios-codegen SPM dependencies
# # - uses: actions/cache@v3
# # with:
# # path: ./DerivedData/SourcePackages
# # key: ${{ runner.os }}-spm-${{ hashFiles('./apollo-ios/Package.resolved') }}-${{ hashFiles('./apollo-ios-codegen/Package.resolved') }}
# # - name: Run Tuist Generation
# # uses: tuist/[email protected]
# # with:
# # command: 'generate'
# # arguments: ''
# - name: Build and Test
# if: ${{ matrix.should-run == true || matrix.should-run == 'true' }}
# id: build-and-test
# uses: ./.github/actions/build-and-run-unit-tests
# with:
# destination: ${{ matrix.destination }}
# scheme: ${{ matrix.scheme }}
# test-plan: ${{ matrix.test-plan }}
# - name: Run-JS-Tests
# if: ${{ matrix.run-js-tests == true }}
# shell: bash
# working-directory: apollo-ios-codegen/Sources/GraphQLCompiler/JavaScript/
# run: |
# npm install && npm test
# - name: Save xcodebuild logs
# if: ${{ steps.build-and-test.outcome != 'skipped' }}
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.name }}-logs
# path: |
# DerivedData/Logs/Build
# - name: Save crash logs
# if: ${{ steps.build-and-test.outcome != 'skipped' }}
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.name }}-crashes
# path: |
# ~/Library/Logs/DiagnosticReports
# - name: Zip Result Bundle
# if: ${{ steps.build-and-test.outcome != 'skipped' }}
# shell: bash
# working-directory: TestResults
# run: |
# zip -r ResultBundle.zip ResultBundle.xcresult
# - name: Save test results
# if: ${{ steps.build-and-test.outcome != 'skipped' }}
# uses: actions/upload-artifact@v3
# with:
# name: ${{ matrix.name }}-results
# path: |
# TestResults/ResultBundle.zip

run-codegen-test-configurations:
runs-on: macos-latest
timeout-minutes: 20
name: Codegen Test Configurations - macOS
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}
- name: Checkout Repo
uses: actions/checkout@v3
- name: Test Codegen Configurations
shell: bash
run: |
./scripts/run-test-codegen-configurations.sh -t
# CodegenTestConfigurations removed because source is not compatible with Sendable yet.

verify-frontend-bundle-latest:
runs-on: macos-latest
Expand Down Expand Up @@ -259,76 +247,4 @@ jobs:
id: run-cocoapods-integration-tests
uses: ./.github/actions/run-cocoapods-integration-tests

run-integration-tests:
runs-on: macos-13
needs: [tuist-generation, changes]
if: ${{ needs.changes.outputs.ios == 'true' }}
timeout-minutes: 20
name: Apollo Integration Tests - macOS
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.2
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup Node 12.22.10
uses: actions/setup-node@v3
with:
node-version: 12.22.10
- name: Setup Upload Server
shell: bash
run: |
sudo chmod -R +rwx SimpleUploadServer
cd SimpleUploadServer && npm install && npm start &
- name: Setup Node 18.15.0
uses: actions/setup-node@v3
with:
node-version: 18.15.0
- name: Setup Subscription Server
shell: bash
run: |
sh ./scripts/install-apollo-server-docs-example-server.sh
cd ../docs-examples/apollo-server/v3/subscriptions-graphql-ws && npm start &
- name: Setup Star Wars Server
shell: bash
run: |
sh ./scripts/install-or-update-starwars-server.sh
cd ../starwars-server && npm start &
- name: Retrieve Build Cache
uses: actions/cache@v3
with:
path: |
./ApolloDev.xcodeproj
./ApolloDev.xcworkspace
./Derived/*
key: ${{ github.run_id }}-dependencies
fail-on-cache-miss: true
- name: Build and Test
uses: ./.github/actions/build-and-run-unit-tests
with:
destination: platform=macOS,arch=x86_64
scheme: ApolloServerIntegrationTests
test-plan: Apollo-IntegrationTestPlan
- name: Save xcodebuild logs
uses: actions/upload-artifact@v3
with:
name: macOS-Integration-logs
path: |
DerivedData/Logs/Build
- name: Save crash logs
uses: actions/upload-artifact@v3
with:
name: macOS-Integration-crashes
path: |
~/Library/Logs/DiagnosticReports
- name: Zip Result Bundle
shell: bash
working-directory: TestResults
run: |
zip -r ResultBundle.zip ResultBundle.xcresult
- name: Save test results
uses: actions/upload-artifact@v3
with:
name: macOS-Integration-results
path: |
TestResults/ResultBundle.zip
# IntegrationTests removed because source is not compatible with Sendable yet.

0 comments on commit ed6b71c

Please sign in to comment.