Skip to content

Commit

Permalink
Chore/use centralised templates (#87)
Browse files Browse the repository at this point in the history
* Switching workflows
  • Loading branch information
dblane-digicatapult authored Nov 18, 2024
1 parent 36af2d7 commit ad57534
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 219 deletions.
165 changes: 26 additions & 139 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,142 +1,29 @@
name: Release

name: Release (NPM)
on:
push:
branches: ["main"]

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: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check token
run: |
if [ -z "${{ secrets.GITHUB_TOKEN }}"]; then
echo "Must provide a GITHUB_TOKEN secret in order to run release workflow"
exit 1
fi
- name: Get repository identifiers
id: repo_ids
run: |
REPO_NAME=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
ORG_NAME=$(echo "${{ github.event.repository.owner.name }}" | tr '[:upper:]' '[:lower:]')
echo "REPO_NAME=$REPO_NAME" >> $GITHUB_OUTPUT
echo "ORG_NAME=$ORG_NAME" >> $GITHUB_OUTPUT
static-checks:
name: Run Static Analysis Checks
strategy:
matrix:
command: [lint, depcheck, check]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.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 ${{ matrix.command }}

tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.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"
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 }}

steps:
- uses: actions/checkout@v4
- name: Check version
id: get_version
uses: digicatapult/check-version@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}

publish-npm:
name: 'Publish package to NPMJS'
needs:
- static-checks
- 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: '20.x'
registry-url: 'https://registry.npmjs.org'
scope: '@digicatapult'
- name: Install Packages
run: npm ci
- name: Build
run: npm run build
- name: Publish to npmjs packages
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}

publish:
name: 'Publish release'
needs: [publish-npm, check-version]
runs-on: ubuntu-latest
if: ${{ needs.check-version.outputs.is_new_version == 'true' }}

steps:
- uses: actions/checkout@v4
# Build github release
- name: Build release version
uses: 'marvinpinto/action-automatic-releases@latest'
with:
repo_token: '${{ secrets.GITHUB_TOKEN }}'
automatic_release_tag: ${{ needs.check-version.outputs.version }}
prerelease: false
title: Release ${{ needs.check-version.outputs.version }}
- name: Build release latest
uses: 'marvinpinto/action-automatic-releases@latest'
with:
repo_token: '${{ secrets.GITHUB_TOKEN }}'
automatic_release_tag: latest
prerelease: false
title: Latest Release ${{ needs.check-version.outputs.version }}
static-checks-npm:
uses: digicatapult/shared-workflows/.github/workflows/static-checks-npm.yml@main
with:
matrix_commands: '["lint", "depcheck", "check"]'
tests-npm:
uses: digicatapult/shared-workflows/.github/workflows/tests-npm.yml@main
with:
tests: '["test"]'
docker_compose_file: ""
release-npm:
needs: [static-checks-npm, tests-npm]
uses: digicatapult/shared-workflows/.github/workflows/release-module-npm.yml@main
with:
npm_build: true
permissions:
contents: write
secrets:
REGISTRY_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
release-github:
needs: [release-npm]
uses: digicatapult/shared-workflows/.github/workflows/release-github.yml@main
permissions:
contents: write
secrets: inherit
89 changes: 12 additions & 77 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,81 +1,16 @@
name: Lint and Test

name: Test (NPM)
on:
push:
branches-ignore: ["main"]

branches-ignore: ['main']
jobs:

repo_ids:
runs-on: ubuntu-latest
outputs:
repo_name: ${{ steps.repo_ids.outputs.REPO_NAME }}
org_name: ${{ steps.repo_ids.outputs.ORG_NAME }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get repository identifiers
id: repo_ids
run: |
REPO_NAME=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
ORG_NAME=$(echo "${{ github.event.repository.owner.name }}" | tr '[:upper:]' '[:lower:]')
echo "REPO_NAME=$REPO_NAME" >> $GITHUB_OUTPUT
echo "ORG_NAME=$ORG_NAME" >> $GITHUB_OUTPUT
static-checks:
name: Run Static Analysis Checks
strategy:
matrix:
command: [lint, depcheck, check]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.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 ${{ matrix.command }}

tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20.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

static-checks-npm:
uses: digicatapult/shared-workflows/.github/workflows/static-checks-npm.yml@main
with:
matrix_commands: '["lint", "depcheck", "check"]'
tests-npm:
uses: digicatapult/shared-workflows/.github/workflows/tests-npm.yml@main
with:
tests: '["test"]'
docker_compose_file: ""
check-version:
name: "Check version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check version
id: get_version
uses: digicatapult/check-version@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
uses: digicatapult/shared-workflows/.github/workflows/check-version.yml@main
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@digicatapult/tsoa-oauth-express",
"version": "0.1.69",
"version": "0.1.70",
"description": "Authentication handler for TSOA using OAuth2 JWT tokens",
"main": "build/index.js",
"type": "commonjs",
Expand Down

0 comments on commit ad57534

Please sign in to comment.