Test Templates #962
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: Test Templates | |
on: | |
push: | |
paths-ignore: | |
- 'dist/**' | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
lint_and_test: | |
name: Lint and test (without templates) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: .nvmrc | |
cache: 'npm' | |
- name: Get Node.js version | |
id: get-node-version | |
run: echo "version=$(node --version | tr -d 'v' | cut -d '.' -f 1)" >> "$GITHUB_OUTPUT" | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ steps.get-node-version.outputs.version }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-${{ steps.get-node-version.outputs.version }}- | |
- name: Install dependencies | |
run: npm install | |
- name: Lint | |
run: npm run lint | |
- name: Test building templates | |
run: npm run build | |
- name: Test template manifest | |
run: npm run test-without-templates | |
test-node-templates: | |
name: Test Node.js templates | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
node-version: [ 18, 20, 22 ] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'npm' | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-${{ matrix.node-version }} | |
- name: Install dependencies | |
run: | | |
npm install | |
npm install -g apify-cli | |
./node_modules/.bin/playwright install chromium --with-deps | |
- name: Test Node.js templates | |
run: npm run test-node-templates | |
env: | |
APIFY_TOKEN: ${{ secrets.APIFY_TEST_USER_API_TOKEN }} | |
OPENAI_API_KEY: ${{ secrets.APIFY_SERVICE_ACCOUNT_OPENAI_API_KEY }} | |
test-python-templates: | |
name: Test Python templates | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: [ '3.9', '3.10', '3.11', '3.12' ] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: .nvmrc | |
cache: 'npm' | |
- name: Get Node.js version | |
id: get-node-version | |
run: echo "version=$(node --version | tr -d 'v' | cut -d '.' -f 1)" >> "$GITHUB_OUTPUT" | |
- name: Cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: ${{ runner.os }}-node-${{ steps.get-node-version.outputs.version }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-${{ steps.get-node-version.outputs.version }}- | |
- name: Install dependencies | |
run: | | |
npm install | |
npm install -g apify-cli | |
./node_modules/.bin/playwright install chromium --with-deps | |
- name: Setup Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Chrome and Chromedriver | |
run: | | |
npx @puppeteer/browsers install chrome | |
npx @puppeteer/browsers install chromedriver | |
- name: Test Python templates | |
run: npm run test-python-templates | |
env: | |
APIFY_TOKEN: ${{ secrets.APIFY_TEST_USER_API_TOKEN }} |