chore(deps): update dependency @types/node to v18.19.64 #931
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: PR-preview | |
# This action creates and updates an instance on Clever Cloud for all PRs that | |
# have the "cc-preview" label | |
on: | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
restartApp: | |
description: "Restart the application" | |
required: false | |
default: "no" | |
env: | |
CLEVER_TOKEN: ${{ secrets.CLEVER_TOKEN }} | |
CLEVER_SECRET: ${{ secrets.CLEVER_SECRET }} | |
jobs: | |
app: | |
if: | |
contains(github.event.pull_request.labels.*.name, 'cc-preview') || | |
github.event_name == 'workflow_dispatch' | |
environment: cc-preview | |
runs-on: ubuntu-latest | |
name: Create the app name and check of app already exists | |
outputs: | |
name: ${{ steps.name.outputs.name }} | |
exists: ${{ steps.exists.outputs.exists }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16.x" | |
- name: Keep npm cache around to speed up installs | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} | |
- name: Install NPM packages | |
run: npm ci | |
- name: Set app name | |
id: name | |
run: | |
echo "::set-output name=name::needs-assessment-storage-pr${{ | |
github.event.pull_request.number }}" | |
- name: Check if preview exists | |
id: exists | |
run: | | |
npx clever link -o ${{ secrets.CLEVER_ORG }} ${{ steps.name.outputs.name }} \ | |
&& echo "::set-output name=exists::true" \ | |
|| echo "::set-output name=exists::false" | |
create: | |
if: | |
github.event.action != 'closed' && | |
contains(github.event.pull_request.labels.*.name, 'cc-preview') && | |
needs.app.outputs.exists == 'false' | |
runs-on: ubuntu-latest | |
environment: cc-preview | |
name: Create preview instance | |
needs: | |
- app | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needed for deploy | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16.x" | |
- name: Keep npm cache around to speed up installs | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} | |
- name: Install NPM packages | |
run: npm ci | |
- name: Create the application | |
run: | |
npx clever create -t node -o ${{ secrets.CLEVER_ORG }} ${{ | |
needs.app.outputs.name }} | |
- name: Link application | |
run: | |
npx clever link -o ${{ secrets.CLEVER_ORG }} ${{ | |
needs.app.outputs.name }} | |
- name: Enable dedicated build instance | |
run: npx clever scale --build-flavor M | |
- name: Force HTTPs | |
run: npx clever config set force-https true | |
- name: Determine endpoint | |
run: | |
echo "ENDPOINT=https://`npx clever domain | tr -d ' \n'`" >> | |
$GITHUB_ENV | |
- name: Configure Node.js application settings | |
run: | | |
npx clever env set CC_NODE_DEV_DEPENDENCIES install | |
npx clever env set CC_RUN_COMMAND 'npm run prod' | |
npx clever env set NODE_ENV production | |
npx clever env set ENDPOINT ${{ env.ENDPOINT }} | |
# Assume website is served from same URL | |
npx clever env set ORIGIN ${{ env.ENDPOINT }} | |
- name: Configure email settings | |
run: | | |
npx clever env set SMTP_FROM ${{ secrets.SMTP_FROM }} # e.g. [email protected] | |
npx clever env set SMTP_USER ${{ secrets.SMTP_USER }} | |
npx clever env set SMTP_PASSWORD ${{ secrets.SMTP_PASSWORD }} | |
npx clever env set SMTP_PORT ${{ secrets.SMTP_PORT }} # e.g. 587 | |
npx clever env set SMTP_SECURE ${{ secrets.SMTP_SECURE }} # e.g. false | |
npx clever env set SMTP_SERVER ${{ secrets.SMTP_SERVER }} # e.g. relay-de.smtp.net | |
- name: Configure storage | |
run: | | |
npx clever env set CC_FS_BUCKET /storage:${{ secrets.STORAGE_BUCKET }} | |
- name: Deploy the application | |
run: npx clever deploy | |
- name: Add comment with preview URL to PR | |
run: | | |
curl \ | |
-X POST \ | |
${{ github.event.pull_request.comments_url }} \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ | |
--data '{ "body": "Preview available on ${{ env.ENDPOINT }}" }' | |
update: | |
if: | |
github.event.action != 'closed' && | |
contains(github.event.pull_request.labels.*.name, 'cc-preview') && | |
needs.app.outputs.exists == 'true' || github.event_name == | |
'workflow_dispatch' | |
runs-on: ubuntu-latest | |
environment: cc-preview | |
name: Update preview instance | |
needs: | |
- app | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needed for deploy | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16.x" | |
- name: Keep npm cache around to speed up installs | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} | |
- name: Install NPM packages | |
run: npm ci | |
- name: Link application | |
run: | |
npx clever link -o ${{ secrets.CLEVER_ORG }} ${{ | |
needs.app.outputs.name }} | |
- name: Deploy the application | |
if: github.event.inputs.restartApp != 'yes' | |
run: npx clever deploy -f | |
- name: Restart the application | |
if: github.event.inputs.restartApp == 'yes' | |
run: npx clever restart | |
- name: Determine endpoint | |
run: | |
echo "ENDPOINT=https://`npx clever domain | tr -d ' \n'`" >> | |
$GITHUB_ENV | |
- name: Add comment with preview URL to PR | |
run: | | |
curl \ | |
-X POST \ | |
${{ github.event.pull_request.comments_url }} \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ | |
--data '{ "body": "Preview updated on ${{ env.ENDPOINT }}" }' | |
delete: | |
if: | |
github.event.action == 'closed' && | |
contains(github.event.pull_request.labels.*.name, 'cc-preview') && | |
needs.app.outputs.exists == 'true' | |
runs-on: ubuntu-latest | |
environment: cc-preview | |
name: Delete preview instance | |
needs: | |
- app | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "16.x" | |
- name: Keep npm cache around to speed up installs | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }} | |
- name: Install NPM packages | |
run: npm ci | |
- name: Link application | |
run: | |
npx clever link -o ${{ secrets.CLEVER_ORG }} ${{ | |
needs.app.outputs.name }} | |
- name: Delete application | |
run: npx clever delete -a ${{ needs.app.outputs.name }} | |
- name: Add comment with preview URL to PR | |
run: | | |
curl \ | |
-X POST \ | |
${{ github.event.pull_request.comments_url }} \ | |
-H "Content-Type: application/json" \ | |
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ | |
--data '{ "body": "Preview instance deleted" }' |