Skip to content

Relax type to be able to use extract-files properly #4152

Relax type to be able to use extract-files properly

Relax type to be able to use extract-files properly #4152

Workflow file for this run

name: CI
on: [pull_request, push]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Use Node.js 18
uses: actions/setup-node@master
with:
node-version: 18
- uses: actions/cache@v4
name: Cache node_modules
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install
run: yarn
- name: Build
run: yarn build
- uses: actions/cache@v4
name: Share build
with:
path: 'packages/apollo-angular/build'
key: ${{ github.sha }}
- name: Pack
run:
(cd packages/apollo-angular/build && yarn pack --filename apollo-angular.tgz && mv
apollo-angular.tgz ../apollo-angular.tgz)
- uses: actions/cache@v4
name: Share tarball
with:
path: 'packages/apollo-angular/apollo-angular.tgz'
key: ${{ github.sha }}
- uses: actions/cache@v4
name: Share script
with:
path: 'scripts/prepare-e2e.js'
key: ${{ github.sha }}
tests:
name: Tests
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Use Node.js 18
uses: actions/setup-node@master
with:
node-version: 18
- uses: actions/cache@v4
name: Cache node_modules
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install
run: yarn
- uses: actions/cache@v4
name: Share build
with:
path: 'packages/apollo-angular/build'
key: ${{ github.sha }}
- name: Test
run: yarn test --ci
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Use Node.js 18
uses: actions/setup-node@master
with:
node-version: 18
- uses: actions/cache@v4
name: Cache node_modules
with:
path: '**/node_modules'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install
run: yarn
- run: ./node_modules/.bin/prettier --check .
angular:
name:
Test on Angular ${{ matrix.angular_version }} GraphQL ${{ matrix.graphql_version }} Node ${{
matrix.node_version }}
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
angular_version: [17, 18]
graphql_version: [15, 16]
node_version: [18, 20]
steps:
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@master
with:
node-version: ${{ matrix.node_version }}
- uses: actions/cache@v4
name: Share tarball
with:
path: 'packages/apollo-angular/apollo-angular.tgz'
key: ${{ github.sha }}
- uses: actions/cache@v4
name: Share script
with:
path: 'scripts/prepare-e2e.js'
key: ${{ github.sha }}
- name: Install Angular CLI
run: npm install @angular/cli@${{ matrix.angular_version }} --global
- name: ng new
run: ng new testapp --package-manager yarn --defaults --minimal --skip-git
- name: ng add apollo-angular
run:
(cd testapp && ng add ../packages/apollo-angular/apollo-angular.tgz --graphql '${{
matrix.graphql_version }}.0.0' --defaults --verbose --skip-confirmation)
- name: ng build
run: (cd testapp && yarn ng run testapp:build:production)
- name: Setup E2E tests
run: |
sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
(cd testapp && yarn add -D cypress-fail-on-console-error)
- name: ng add cypress
run: (cd testapp && ng add @cypress/schematic --defaults --verbose --skip-confirmation)
- name: Update Angular code
run: ./scripts/prepare-e2e.js testapp ${{ matrix.graphql_version }}
- name: ng e2e
run: (cd testapp && yarn ng run testapp:cypress-run:production)