Version Packages (#821) #5238
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration test | |
on: | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: '0 0 * * *' # end of each day (UTC) | |
pull_request: | |
env: | |
ASTRO_FOLDER: astro-test | |
jobs: | |
test: | |
if: ${{ github.repository == 'primer/brand' }} | |
name: Astro - React starter | |
runs-on: | |
labels: ubuntu-latest-16-cores | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Node | |
uses: actions/setup-node@v2 | |
with: | |
node-version: 18 | |
- name: Caching dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
# Restore the previous NPM modules and Cypress binary archives. | |
# Any updated archives will be saved automatically after the entire | |
# workflow successfully finishes. | |
# See https://github.com/actions/cache | |
- name: Cache Cypress binary | |
uses: actions/cache@v1 | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-cypress-${{ hashFiles('**/package.json') }} | |
restore-keys: | | |
cypress-${{ runner.os }}-cypress- | |
- name: Installing dependencies | |
run: npm ci --legacy-peer-deps && cd apps/docs && npm ci --legacy-peer-deps | |
- name: install dependencies and verify Cypress | |
env: | |
# make sure every Cypress install prints minimal information | |
CI: 1 | |
# print Cypress and OS info | |
run: | | |
npx cypress install --force | |
npx cypress verify | |
npx cypress info | |
npx cypress version | |
npx cypress version --component package | |
npx cypress version --component binary | |
npx cypress version --component electron | |
npx cypress version --component node | |
- name: Build | |
run: npm run build:lib | |
- name: Bundling output | |
run: cd packages/react/ && npm pack | |
- name: Configuring Astro React / TypeScript project | |
# lock version to 1.1.0 due to non-tty support removed in 1.2.0 | |
# TODO: review Astro updates regularly to using @latest | |
run: npm create astro@1.1.0 ${{env.ASTRO_FOLDER}} -- --template framework-react | |
- name: Retrieving package version | |
id: package-version | |
uses: martinbeentjes/npm-get-version-action@7aa1d82604bb2dbe377a64ca35e692e6fe333c9c | |
with: | |
path: packages/repo-configs | |
- name: Installing local build | |
run: | | |
cd ${{env.ASTRO_FOLDER}} | |
cp ../packages/react/primer-react-brand-${{ steps.package-version.outputs.current-version}}.tgz ./ | |
npm install primer-react-brand-${{ steps.package-version.outputs.current-version}}.tgz | |
- name: Prefer CommonJS imports | |
run: | | |
mv packages/e2e/integration-tests/fixtures/index.cjs.ts packages/e2e/integration-tests/fixtures/index.ts | |
rm packages/e2e/integration-tests/fixtures/index.esm.ts | |
- name: Copying required files | |
run: | | |
cp packages/e2e/integration-tests/astro/index.astro ./${{env.ASTRO_FOLDER}}/src/pages | |
cp packages/e2e/cypress.config.js ./${{env.ASTRO_FOLDER}}/cypress.config.cjs | |
cp -r packages/e2e/integration-tests/fixtures ./${{env.ASTRO_FOLDER}}/src | |
mkdir ${{env.ASTRO_FOLDER}}/integration-tests | |
cp -r packages/e2e/integration-tests/fixtures ./${{env.ASTRO_FOLDER}}/integration-tests | |
cp -r packages/e2e/integration-tests/tests ./${{env.ASTRO_FOLDER}}/integration-tests | |
- name: Testing compile-time build | |
run: cd ${{env.ASTRO_FOLDER}} && npm run build | |
# Cypress is not able to run tests in the Astro project due to bundler errors | |
# Local tsconfig compilerOptions are not respected | |
# FIXME: When there is a workaround in both Cypress and Astro | |
# See https://github.com/cypress-io/cypress/issues/28052 | |
- name: Remove base tsconfig due to bundler error | |
run: npx json -I -f ${{env.ASTRO_FOLDER}}/tsconfig.json -e 'delete this.extends' | |
- name: Test runtime for errors and warnings | |
run: cd ${{env.ASTRO_FOLDER}} && npx start-server-and-test 'npx http-server ./dist -p 3000' 3000 'npx cypress run --spec "./integration-tests/tests/*" --config video=false' |