From 3e5ae6c8298739f96b89e0cd0221da6f8abcc9ee Mon Sep 17 00:00:00 2001 From: Julian Simioni Date: Fri, 14 Jul 2023 17:57:45 -0400 Subject: [PATCH] CI: Update GitHub Actions config for uniformity 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 https://github.com/pelias/pelias/issues/951) --- .github/workflows/_test.yml | 28 +++++++++++++++++++++++++++ .github/workflows/pull_request.yml | 7 +++++++ .github/workflows/push.yml | 31 ++++-------------------------- 3 files changed, 39 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/_test.yml create mode 100644 .github/workflows/pull_request.yml diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml new file mode 100644 index 0000000..aeae838 --- /dev/null +++ b/.github/workflows/_test.yml @@ -0,0 +1,28 @@ +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: Install dependencies + run: | + sudo add-apt-repository -y ppa:ubuntugis/ppa + sudo apt-get update -q + sudo apt-get install -y proj-bin gdal-bin + - name: Run unit tests + run: | + npm install + npm run ci diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml new file mode 100644 index 0000000..c9533fc --- /dev/null +++ b/.github/workflows/pull_request.yml @@ -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 diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index ab31230..6c8fc07 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -2,34 +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: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntugis/ppa - sudo apt-get update -q - sudo apt-get install -y proj-bin gdal-bin - - 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 @@ -49,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