Skip to content
This repository has been archived by the owner on Mar 14, 2024. It is now read-only.

Update dependency @apollo/server to ^4.10.1 #49

Update dependency @apollo/server to ^4.10.1

Update dependency @apollo/server to ^4.10.1 #49

Workflow file for this run

name: Release
on:
push:
branches: ["main"]
jobs:
preconditions:
runs-on: ubuntu-latest
outputs:
repo_name: ${{ steps.repo_ids.outputs.REPO_NAME }}
org_name: ${{ steps.repo_ids.outputs.ORG_NAME }}
steps:
- name: Check npmjs token
run: |
if [ -z "${{ secrets.NPMJS_TOKEN }}"]; then
echo "Must provide a NPMJS_TOKEN secret in order to run release workflow"
exit 1
fi
lint:
name: Run lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Install Packages
run: npm ci
- name: Lint
run: npm run lint
dependency-check:
name: Run dependency check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Install Packages
run: npm ci
- name: Dependency Check
run: npm run depcheck
tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Cache Node.js modules
uses: actions/cache@v4
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- name: Install Packages
run: npm ci
- name: Run tests
run: npm run test
check-version:
name: "Check version"
needs: [lint, dependency-check, tests]
runs-on: ubuntu-latest
outputs:
is_new_version: ${{ steps.get_version.outputs.IS_NEW_VERSION }}
version: ${{ steps.get_version.outputs.VERSION }}
build_date: ${{ steps.get_version.outputs.BUILD_DATE }}
is_prerelease: ${{ steps.get_version.outputs.IS_PRERELEASE }}
npm_release_tag: ${{ steps.get_version.outputs.NPM_RELEASE_TAG }}
steps:
- uses: actions/checkout@v4
- name: Check version
id: get_version
uses: digicatapult/check-version@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
publish:
name: "Publish package"
needs: [check-version]
runs-on: ubuntu-latest
if: ${{ needs.check-version.outputs.is_new_version == 'true' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.x'
registry-url: 'https://npm.pkg.github.com'
scope: '@digicatapult' # Defaults to the user or organization that owns the workflow file
- name: Build Github release for version
uses: 'marvinpinto/action-automatic-releases@latest'
with:
repo_token: '${{ secrets.GITHUB_TOKEN }}'
automatic_release_tag: ${{ needs.check-version.outputs.version }}
prerelease: ${{ needs.check-version.outputs.is_prerelease == 'true' }}
title: Release ${{ needs.check-version.outputs.version }}
- name: Build Github latest release
uses: 'marvinpinto/action-automatic-releases@latest'
if: ${{ needs.check-version.outputs.is_prerelease == 'false' }}
with:
repo_token: '${{ secrets.GITHUB_TOKEN }}'
automatic_release_tag: latest
prerelease: false
title: Latest Release ${{ needs.check-version.outputs.version }}
- run: npm ci
- name: Publish to github packages
run: npm publish --tag ${{ needs.check-version.outputs.npm_release_tag }}
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-npm:
name: 'Publish package to NPMJS'
needs:
- preconditions
- lint
- dependency-check
- tests
- check-version
runs-on: ubuntu-latest
if: ${{ needs.check-version.outputs.is_new_version == 'true' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
scope: '@digicatapult'
- name: Install Packages
run: npm ci
- name: Publish to npmjs packages
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}