GitHub Actions上でPuppeteerを動かす
GitHub ActionsでPuppeteerを動かしたいなと思い試してみたメモです。
結果、特にそこまで気にせずに起動してくれました。
準備
割と普通ですね。
yarn add puppeteer
プログラム
GitHubのPuppeteer Headfulのページを見るとprocess.env.PUPPETEER_EXEC_PATH
でバイナリを指定しろみたいな記載があるけど、特に指定せずに普通インストールして使えました。
const puppeteer = require('puppeteer');
(async () => {
const URL = `https://twitter.com/n0bisuke`;
const browser = await puppeteer.launch({});
const page = await browser.newPage();
await page.goto(URL); //URLにアクセス
// Get the "viewport" of the page, as reported by the page.
const dimensions = await page.evaluate(() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
title: document.title,
deviceScaleFactor: window.devicePixelRatio
};
});
console.log('Dimensions:', dimensions);
console.log('タイトル:', dimensions.title);
await browser.close();
})();
ちなみにローカルでもこのままnode app.jsで使えます。
ymlの記述
.github/workflows/run-puppeteer.yml
を作成
name: RUN puppeteer
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
# 以下が実際のステップ
steps:
- uses: actions/checkout@v2
- name: Use Node.js 14.x
uses: actions/setup-node@v1
with:
node-version: '14.x'
- name: install command
run: yarn install
- name: RUN app.js
run: node app.js
デプロイして確認
ちゃんと動いてるっぽい
所感
Vercelなどserverless環境で動かすときとは変更あったけど、今回は特に無さそうですね。
ファイル書き込みがどうなるかとかは試せてないのでその辺気になりますね。
全体コードはこちらにまとめておきます。
Author And Source
この問題について(GitHub Actions上でPuppeteerを動かす), 我々は、より多くの情報をここで見つけました https://qiita.com/n0bisuke/items/6ecfdcb4d1bbb4b6419c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .