Skip to content

CI: Use Ubuntu-20 Github Actions runners #63

CI: Use Ubuntu-20 Github Actions runners

CI: Use Ubuntu-20 Github Actions runners #63

Workflow file for this run

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
npm-publish:
needs: unit-tests
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Node.js
uses: actions/setup-node@v2-beta
with:
node-version: 16.x
- name: Run semantic-release
env:
GH_TOKEN: ${{ secrets.GH_SEMANTIC_RELEASE_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: >
if [[ -n "$GH_TOKEN" && -n "$NPM_TOKEN" ]]; then
curl "https://raw.githubusercontent.com/pelias/ci-tools/master/semantic-release.sh" | bash -
fi
build-docker-images:
# run this job if the unit tests passed and the npm-publish job was a success or was skipped
# 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
steps:
- uses: actions/checkout@v2
- name: Build Docker images
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
curl "https://raw.githubusercontent.com/pelias/ci-tools/master/build-docker-images.sh" | bash -