-
Notifications
You must be signed in to change notification settings - Fork 15
130 lines (101 loc) · 3.66 KB
/
test-unit.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Build and Test
on:
push:
branches:
- "master"
pull_request:
branches:
- master
jobs:
unit-test:
name: Unit tests
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: nixbuild/nix-quick-install-action@v27
- uses: nix-community/cache-nix-action@v5
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
- uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package*.json') }}
restore-keys: |
${{ runner.os }}-npm-
- run: nix develop -c npm i
- name: Run unit tests
run: nix develop -c task test-unit
build:
name: Build
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: nixbuild/nix-quick-install-action@v27
- uses: nix-community/cache-nix-action@v5
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
- name: test analytics key match
run: nix develop -c task test-analytics-key-match
- name: Build container image
run: nix develop -c task build-local
- name: Smoke test container image
run: nix develop -c task build-smoke-test
test-install:
name: Test install/run
if: "!startsWith(github.head_ref, 'release/')" # Install test will fail on release branch as version won't mach
runs-on: "${{ matrix.os }}"
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-22.04
- ubuntu-20.04
# - macos-14 # Docker install suported yet
# - macos-13
steps:
- name: Checkout repository
uses: actions/checkout@v4
# - name: (MacOS) Setup Docker
# if: startsWith(matrix.os, 'macos')
# # uses: docker-practice/actions-setup-docker@master
# # timeout-minutes: 12
# # uses: douglascamata/setup-docker-macos-action@main
# uses: crazy-max/ghaction-setup-docker@v3
# Test the install script and cloudypad.sh for current commit
- name: Run install script
run: |
curl -fsSL https://raw.githubusercontent.com/PierreBeucher/cloudypad/${{ github.sha }}/install.sh | bash
echo " ==== .bachrc content ==="
cat ~/.bashrc
echo " ==== .bachrc content ==="
bash -i -c 'echo $PATH && which cloudypad'
test-install-container:
name: Test install/run in containers
if: "!startsWith(github.head_ref, 'release/')" # Install test will fail on release branch as version won't mach
runs-on: ubuntu-22.04
# env:
# # Container do not have a tty, this will ensure script behave appropriately
# CLOUDYPAD_CONTAINER_NO_TTY: true
# # Enable debug logs
# CLOUDYPAD_CLI_LAUNCHER_DEBUG: true
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Test install.sh script
run: test/shell/test-install.sh
- name: Test cloudypad.sh script
run: test/shell/test-cloudypad.sh
test-flake-package:
name: Test Flake package
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: nixbuild/nix-quick-install-action@v27
- run: nix build .#
# Disable this for now as latets version does not respect no-tty properly
# - run: CLOUDYPAD_CONTAINER_NO_TTY=true nix run .# -- --version