This repository has been archived by the owner on May 22, 2024. It is now read-only.
Merge pull request #31 from digital-blueprint/renovate/all-minor-patch #200
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: Build and Test | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
env: | |
PLAYWRIGHT_BROWSERS_PATH: /tmp/_playwright_cache | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
- name: Restore playwright cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
${{ env.PLAYWRIGHT_BROWSERS_PATH }} | |
key: playwright-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
playwright- | |
- name: Install dependencies | |
run: | | |
npm ci | |
- name: Run build | |
run: APP_ENV=development npm run build | |
- name: Install test dependencies | |
run: | | |
./node_modules/.bin/playwright install-deps chromium firefox | |
- name: Run tests | |
run: npm run test-full | |
- name: Run lint | |
run: npm run lint | |
deploy: | |
runs-on: ubuntu-latest | |
needs: [test] | |
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/demo' || github.ref == 'refs/heads/production' | |
environment: ${{ github.ref_name }} | |
env: | |
NPM_CACHE_PATH: /tmp/_npm_cache | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
- name: Publish to NPM | |
if: github.ref == 'refs/heads/main' | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
run: | | |
# https://www.npmjs.com/settings/dbp-deploy/tokens | |
# NPM_TOKEN needs to be a "Publish" token with 2FA disabled! | |
echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' > ~/.npmrc | |
npm install | |
npm run build | |
npm run do-publish | |
- name: Deploy and wait for completion | |
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/demo' || github.ref == 'refs/heads/production' | |
uses: digital-blueprint/gitlab-pipeline-trigger-action@v1 | |
with: | |
host: 'gitlab.tugraz.at' | |
trigger_token: ${{ secrets.DEPLOY_TRIGGER_TOKEN }} | |
access_token: ${{ secrets.DEPLOY_ACCESS_TOKEN }} | |
id: '21238' | |
ref: 'main' | |
variables: '{"UPSTREAM_PROJECT_PATH":"dbp/greenlight/greenlight","UPSTREAM_COMMIT_BRANCH":"${{ github.ref_name }}","UPSTREAM_COMMIT_SHA":"${{ github.ref_name }}"}' |