Skip to content

Commit

Permalink
CI: Update GitHub Actions config for uniformity
Browse files Browse the repository at this point in the history
This updates CI configuration for this repo with the following changes:
- the core configuration for running unit tests is moved to _test.yml so it
  can be shared
- a new pull request workflow is added that only runs on external forks, and runs unit tests
- Ubuntu versions are now pulled from a GitHub Actions variable (see pelias/pelias#951)
  • Loading branch information
orangejulius committed Jul 15, 2023
1 parent 5cfaf29 commit 21a7be4
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 22 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Unit Tests
on: workflow_call
jobs:
unit-tests:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- ${{ vars.UBUNTU_VERSION }}
node-version:
- 12.x
- 14.x
- 16.x
steps:
- uses: actions/checkout@v2
- name: 'Install node.js ${{ matrix.node-version }}'
uses: actions/setup-node@v2-beta
with:
node-version: '${{ matrix.node-version }}'
- name: Run unit tests
run: |
npm install
npm run ci
7 changes: 7 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: Continuous Integration
on: pull_request
jobs:
unit-tests:
# only run this job for forks
if: github.event.pull_request.head.repo.full_name != github.repository
uses: ./.github/workflows/_test.yml
26 changes: 4 additions & 22 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,11 @@ name: Continuous Integration
on: push
jobs:
unit-tests:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- ubuntu-20.04
node-version:
- 12.x
- 14.x
- 16.x
steps:
- uses: actions/checkout@v2
- name: 'Install node.js ${{ matrix.node-version }}'
uses: actions/setup-node@v2-beta
with:
node-version: '${{ matrix.node-version }}'
- name: Run unit tests
run: |
npm install
npm run ci
uses: ./.github/workflows/_test.yml
npm-publish:
needs: unit-tests
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
runs-on: ubuntu-20.04
if: github.ref == 'refs/heads/master' && needs.unit-tests.result == 'success'
runs-on: ${{ vars.UBUNTU_VERSION }}
steps:
- uses: actions/checkout@v2
- name: Install Node.js
Expand All @@ -44,7 +26,7 @@ jobs:
# note: github actions won't run a job if you don't call one of the status check functions, so `always()` is called since it evalutes to `true`
if: ${{ always() && needs.unit-tests.result == 'success' && (needs.npm-publish.result == 'success' || needs.npm-publish.result == 'skipped') }}
needs: [unit-tests, npm-publish]
runs-on: ubuntu-20.04
runs-on: ${{ vars.UBUNTU_VERSION }}
steps:
- uses: actions/checkout@v2
- name: Build Docker images
Expand Down

0 comments on commit 21a7be4

Please sign in to comment.