Skip to content

Commit de2edc8

Browse files
committed
Make build of e2e and astarte parallel, then run e2e tests
Signed-off-by: Eddy Babetto <eddy.babetto@secomind.com>
1 parent d07b1b9 commit de2edc8

File tree

3 files changed

+77
-23
lines changed

3 files changed

+77
-23
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Astarte build
2+
3+
on:
4+
workflow_call:
5+
6+
7+
env:
8+
elixir_version: "1.15"
9+
otp_version: "26.1"
10+
11+
jobs:
12+
astarte-build:
13+
name: Astarte build
14+
runs-on: ubuntu-22.04
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Setup Docker Buildx
18+
uses: docker/setup-buildx-action@v3
19+
- name: Build Astarte containers
20+
uses: docker/bake-action@v6
21+
with:
22+
files: docker-compose.yml
23+
set: |
24+
*.cache-from=type=gha
25+
*.cache-to=type=gha,mode=max
26+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Astarte end-to-end build
2+
3+
on:
4+
workflow_call:
5+
6+
env:
7+
elixir_version: "1.15"
8+
otp_version: "26.1"
9+
10+
jobs:
11+
end-to-end-build:
12+
name: End-to-end build
13+
runs-on: ubuntu-22.04
14+
steps:
15+
- uses: actions/checkout@v2
16+
- name: Cache Astarte E2E deps
17+
uses: actions/cache@v4
18+
with:
19+
path: tools/astarte_e2e/deps
20+
key: e2e-deps-${{ env.otp_version }}-${{ env.elixir_version }}-${{ hashFiles(format('{0}{1}{2}', github.workspace, '/tools/astarte_e2e', '/mix.lock')) }}
21+
- name: Cache Astarte E2E build
22+
uses: actions/cache@v4
23+
with:
24+
path: tools/astarte_e2e/_build
25+
key: e2e-build-${{ env.otp_version }}-${{ env.elixir_version }}
26+
- name: Cache Astarte E2E deps
27+
uses: actions/cache@v4
28+
with:
29+
path: tools/astarte_e2e/deps
30+
key: e2e-build-${{ env.otp_version }}-${{ env.elixir_version }}
31+
- uses: erlef/setup-beam@v1.15
32+
- uses: erlef/setup-beam@v1.15
33+
with:
34+
otp-version: ${{ env.otp_version }}
35+
elixir-version: ${{ env.elixir_version }}
36+
- name: Build Astarte E2E
37+
working-directory: tools/astarte_e2e
38+
run: |
39+
mix deps.get
40+
mix compile --warnings-as-errors --force

.github/workflows/astarte-end-to-end-test-workflow.yaml

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,23 @@ env:
2626
otp_version: "26.1"
2727

2828
jobs:
29+
e2e-build:
30+
uses: ./.github/workflows/astarte-e2e-build-workflow.yaml
31+
astarte-build:
32+
uses: ./.github/workflows/astarte-build-workflow.yaml
33+
2934
end-to-end-test:
35+
needs: [e2e-build, astarte-build]
3036
name: End-to-end Test
3137
runs-on: ubuntu-22.04
3238
steps:
3339
- uses: actions/checkout@v2
3440
- name: Initialize docker compose files
3541
run: docker run -v $(pwd)/compose:/compose astarte/docker-compose-initializer
36-
- name: Setup Docker Buildx
37-
uses: docker/setup-buildx-action@v3
38-
- name: Build Astarte containers
39-
uses: docker/bake-action@v6
42+
- uses: erlef/setup-beam@v1.15
4043
with:
41-
files: docker-compose.yml
42-
set: |
43-
*.cache-from=type=gha
44-
*.cache-to=type=gha,mode=max
44+
otp-version: ${{ env.otp_version }}
45+
elixir-version: ${{ env.elixir_version }}
4546
- name: Start all Astarte services
4647
run: docker compose up -d
4748
- name: Wait for Astarte to come up
@@ -75,21 +76,7 @@ jobs:
7576
uses: actions/cache@v4
7677
with:
7778
path: tools/astarte_e2e/deps
78-
key: e2e-deps-${{ env.otp_version }}-${{ env.elixir_version }}-${{ hashFiles(format('{0}{1}{2}', github.workspace, '/tools/astarte_e2e', '/mix.lock')) }}
79-
- name: Cache Astarte E2E build
80-
uses: actions/cache@v4
81-
with:
82-
path: tools/astarte_e2e/_build
8379
key: e2e-build-${{ env.otp_version }}-${{ env.elixir_version }}
84-
- uses: erlef/setup-beam@v1.15
85-
with:
86-
otp-version: ${{ env.otp_version }}
87-
elixir-version: ${{ env.elixir_version }}
88-
- name: Build Astarte E2E
89-
working-directory: tools/astarte_e2e
90-
run: |
91-
mix deps.get
92-
mix compile --warnings-as-errors --force
9380
- name: Run Astarte E2E
9481
working-directory: tools/astarte_e2e
9582
env:
@@ -101,7 +88,8 @@ jobs:
10188
E2E_CHECK_REPETITIONS: 5
10289
E2E_MAILER_TO_ADDRESS: mail@example.com
10390
E2E_MAIL_SUBJECT: "Subj: Astarte Notification"
104-
run: mix run --no-halt
91+
run: |
92+
mix run --no-halt
10593
- name: Check Docker
10694
if: ${{ failure() }}
10795
run: docker compose logs

0 commit comments

Comments
 (0)