-
-
Notifications
You must be signed in to change notification settings - Fork 76
40 lines (40 loc) · 1.59 KB
/
push.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
name: 'Continuous Integration'
on:
push:
branches-ignore:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
unit-tests:
uses: ./.github/workflows/_unit_tests.yml
integration-tests:
uses: ./.github/workflows/_integration_tests.yml
npm-publish:
needs: [unit-tests, integration-tests]
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Run semantic-release
env:
GH_TOKEN: ${{ secrets.GH_SEMANTIC_RELEASE_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
curl "https://raw.githubusercontent.com/pelias/ci-tools/master/semantic-release.sh" | bash -
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, integration-tests, npm-publish]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- 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 -