6
6
- main
7
7
paths :
8
8
- ' logrotate/selinux-policy/ee-logrotate.te'
9
- - ' .github/workflows/compile-ee-logrotate-sepolicy .yml'
9
+ - ' .github/workflows/compile-selinux-policy .yml'
10
10
workflow_dispatch :
11
11
12
12
jobs :
13
13
compile-policy :
14
- # Sử dụng container Fedora để có sẵn các công cụ SELinux
15
- container : fedora:latest
14
+ # Chạy trên máy chủ Ubuntu mặc định, không dùng container
16
15
runs-on : ubuntu-latest
17
16
permissions :
18
17
contents : write
19
18
20
19
steps :
21
20
- name : Checkout repository
21
+ # Bước này sẽ tải code về và bao gồm lịch sử Git đầy đủ
22
22
uses : actions/checkout@v4
23
+ with :
24
+ fetch-depth : 0
23
25
24
26
- name : Install SELinux build tools and Git
25
- # Cài đặt các gói cần thiết và cả git trong container Fedora
26
- run : dnf install -y policycoreutils-devel selinux-policy-devel make git
27
+ # Cài đặt các gói cần thiết bằng apt-get trên Ubuntu
28
+ run : sudo apt-get update && sudo apt-get install -y policycoreutils selinux-policy-dev make git
27
29
28
30
- name : Compile and package SELinux policy
29
31
run : |
@@ -32,36 +34,24 @@ jobs:
32
34
33
35
# Bước 1: Biên dịch file .te thành .mod
34
36
echo "Compiling ee-logrotate.te to ee-logrotate.mod..."
35
- # Đổi tên file đầu ra để khớp với tên module bên trong file .te
36
37
checkmodule -M -m -o ee-logrotate.mod ee-logrotate.te
37
38
38
39
# Bước 2: Tạo policy package (.pp) từ file .mod
39
40
echo "Creating ee-logrotate.pp from ee-logrotate.mod..."
40
41
semodule_package -o ee-logrotate.pp -m ee-logrotate.mod
41
42
42
- # Thêm một bước để lấy thông tin tag mới nhất, vì upload release cần tag
43
43
- name : Get the latest tag
44
44
id : get_tag
45
45
run : |
46
46
latest_tag=$(git describe --tags --abbrev=0)
47
47
echo "latest_tag=${latest_tag}" >> $GITHUB_OUTPUT
48
48
echo "📌 Latest tag: ${latest_tag}"
49
49
50
- # Thêm bước này để tải file .pp lên GitHub Release
51
50
- name : Upload compiled policy file to release
52
51
env :
53
52
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
54
53
run : |
55
54
# Di chuyển file .pp về thư mục gốc để dễ dàng upload
56
55
mv logrotate/selinux-policy/ee-logrotate.pp .
57
- # Đổi tên file để tải lên khớp với tên mới
58
56
gh release upload ${{ steps.get_tag.outputs.latest_tag }} ee-logrotate.pp --clobber
59
57
echo "✅ Successfully uploaded ee-logrotate.pp to release '${{ steps.get_tag.outputs.latest_tag }}'"
60
-
61
- # Xóa bước upload artifact cũ
62
- # - name: Upload compiled policy file
63
- # uses: actions/upload-artifact@v4
64
- # with:
65
- # name: compiled-selinux-policy
66
- # path: ee-logrotate.pp
67
- # retention-days: 5
0 commit comments