-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (125 loc) · 3.5 KB
/
CI.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: CI
run-name: ft_libft CI test
on:
push:
branches: [main]
paths:
- '**.c'
- '**.h'
- Makefile
- '**.mk'
pull_request:
types: [opened]
workflow_dispatch:
workflow_call:
inputs:
is_called:
description: "Is called by another actions"
default: false
type: boolean
jobs:
info:
runs-on: ubuntu-latest
steps:
- name: "💬 github"
run: |+
echo "Who launched: ${{ github.actor }}"
echo "On branch: ${{ github.ref_name }}"
echo "Commit sha: ${{ github.sha }}"
echo "Trigger event name ${{ github.event_name }}"
- name: "💬 Bin utils"
run: |+
make --version && echo
ar --version && echo
gcc --verbose && echo
python3 --version
build:
strategy:
max-parallel: 5
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: ☁️ Retrieve repo
uses: actions/checkout@v3
with:
repository: "Pixailz/ft_libft"
submodules: recursive
- name: ☁️ Update submodule
if: ${{ inputs.is_called }}
run: git submodule update --remote --recursive
- name: 🔧 Build up libft.a (${{ matrix.os }})
run: |+
DISABLE_HELPER=1 make fclean
DISABLE_HELPER=1 make
DISABLE_HELPER=1 make re
DISABLE_HELPER=1 make
- name: 🔧 Call helper
run: make helper
test:
strategy:
max-parallel: 5
matrix:
test_src: [
"ato.c",
"check/is_str.c",
"get_next_line.c",
"hton.c",
"htoi4.c",
"int4.c",
"ipv4.c",
"isexec.c",
"ntop.c",
"parsing.c",
"print_nb_base.c",
"print.c",
"random.c",
"tmpfile.c",
"hashtable.c",
]
runs-on: ubuntu-latest
steps:
- name: ☁️ Retrieve repo
uses: actions/checkout@v3
with:
repository: "Pixailz/ft_libft"
submodules: recursive
- name: ☁️ Update submodule
if: ${{ inputs.is_called }}
run: git submodule update --remote --recursive
- name: 🔧 Launch, with sudo, ${{ matrix.test_src }}
if: contains(fromJson('["htoi4.c", "i4toh.c"]'), matrix.test_src)
run: sudo make CI_TARGET=${{ matrix.test_src }} ci-run
- name: 🔧 Launch ${{ matrix.test_src }}
if: ${{ !contains(fromJson('["htoi4.c", "i4toh.c"]'), matrix.test_src) }}
run: make CI_TARGET=${{ matrix.test_src }} ci-run
norminette:
runs-on: ubuntu-latest
steps:
- name: ☁️ Retrieve repo
uses: actions/checkout@v3
with:
repository: "Pixailz/ft_libft"
submodules: recursive
- name: ☁️ Update submodule
if: ${{ inputs.is_called }}
run: git submodule update --remote --recursive
- name: ☁️ Setup python3
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: ☁️ Installing Norminette
run: pip install norminette
- name: 💬 Run
run: python3 -m norminette || true
do_other:
needs: [build, test, norminette]
if: ${{ ! inputs.is_called }}
uses: ./.github/workflows/CD-other.yml
secrets: inherit
do_release:
needs: [do_other]
if: ${{ ! inputs.is_called }}
uses: ./.github/workflows/CD-release.yml
secrets: inherit