-
Notifications
You must be signed in to change notification settings - Fork 1
84 lines (80 loc) · 3.41 KB
/
containers.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
name: Containers
# TODO try using platform matrix and a single file for Ubuntu and Debian
# TODO - set trigger paths, remove unnecessary commands, unify with Ubuntu script
# TODO test
# TODO merge WSL_Debian and WSL_Ubuntu_22.04 CI into a single .yml file
# TODO Debian fails to build because of this bug: https://github.com/llvm/llvm-project/issues/62475
# TODO - problem - changes in e.g. Kali Linux will thanks to the matrix trigger CI pipeline also for Debian etc. which might not be needed
# TODO add correct trigger paths (e.g. for PopOS etc.)
on:
push:
branches: [ "devel", "testing", "stable", "minimal" ]
paths:
- 'run_init.sh'
- 'prelude.sh'
- 'CommonInitScripts/*.sh*'
- '.github/workflows/containers.yml'
- 'WSL_Ubuntu_22.04/*.sh'
- 'WSL_Debian_12/*.sh'
- 'Kali_latest_TUI/*.sh'
pull_request:
branches: [ "devel", "testing", "stable", "minimal" ]
paths:
- 'run_init.sh'
- 'prelude.sh'
- 'CommonInitScripts/*.sh*'
- '.github/workflows/containers.yml'
- 'WSL_Ubuntu_22.04/*.sh'
- 'WSL_Debian_12/*.sh'
- 'Kali_latest_TUI/*.sh'
jobs:
distro-test:
continue-on-error: true
runs-on: ubuntu-22.04
name: ${{ matrix.container }}
strategy:
matrix: # TODO add gnome as an additional row in the matrix
container:
- 'ubuntu:23.10' # https://hub.docker.com/_/ubuntu
- 'ubuntu:22.04'
- 'debian:12' # https://hub.docker.com/_/debian
- 'kalilinux/kali-rolling' # https://hub.docker.com/r/kalilinux/kali-rolling
- 'nycticoracs/pop_os:22.04' # PopOS TODO add link
container:
image: ${{ matrix.container }}
steps:
# - name: "set APT to non-interactive"
# shell: bash
# run: "echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections"
- name: "Update APT"
run: "apt-get update -y"
- name: "Install `git` and `sudo`"
run: "apt-get install -y git sudo"
- name: "Checkout repo"
uses: actions/checkout@v4
- name: print `github.ref=${{ github.ref }}`
run: echo ${{ github.ref }}
- name: print `github.sha=${{ github.sha }}`
run: echo ${{ github.sha }}
- name: Running iniPC script for the 1st time should not fail.
run: ./run_init.sh --noninteractive
- name: save ~/ for idempotency test
run: cp -r ~/ /tmp/old_home/
- name: Running iniPC script for the 2nd time should not fail.
run: ./run_init.sh --noninteractive
# TODO split this command to multiple lines
# TODO also test that the first run of initPC script does change the state of home dir
# TODO - test whether the test works as expected
# TODO sync the idempotency test between linux distros (this is the most recent)
- name: The initPC script should be idempotent on ~/ directory (WIP - needs testing)
run: |
cd ~
pwd
find . -type f \( ! -iname "*.log" ! -path "*/.dotfiles/logs/HEAD" \
! -path "*work/_temp/*" ! -path "./runners/*" \
! -path "./x/helix/target/release/.fingerprint/*" \
! -path "./.cargo/registry/index/*" \
! -path "./x/helix/target/release/build/helix-term*" \
! -path "./x/helix/target/.rustc_info.json" \
! -name ".wget-hsts" \) -print0 |
xargs -0 -I{} bash -c 'if ! diff -C 30 "/tmp/old_home/$1" "$1"; then echo "diff failed for: $1"; exit 1; fi' bash {}