-
Notifications
You must be signed in to change notification settings - Fork 0
121 lines (93 loc) · 3.92 KB
/
ci.yml
File metadata and controls
121 lines (93 loc) · 3.92 KB
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
name: CI
on:
push:
schedule:
- cron: '32 7 1,16 * *'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
EDITION_SHORT: ['HannahMontana', 'Interstate', 'TaylorSwift', 'TwilightZone']
include:
- EDITION_SHORT: 'HannahMontana'
EDITION_LONG: 'Hannah Montana Linux'
SOURCEFORGE_NAME: 'testhannahmontanaswiftlinux'
- EDITION_SHORT: 'Interstate'
EDITION_LONG: 'Interstate Swift Linux'
SOURCEFORGE_NAME: 'testinterstateswiftlinux'
- EDITION_SHORT: 'TaylorSwift'
EDITION_LONG: 'Taylor Swift Linux'
SOURCEFORGE_NAME: 'testtaylorswiftlinux'
- EDITION_SHORT: 'TwilightZone'
EDITION_LONG: 'Twilight Zone Swift Linux'
SOURCEFORGE_NAME: 'testtwilightzoneswiftlinux'
env:
EDITION_SHORT_CI: ${{ matrix.EDITION_SHORT }}
EDITION_LONG_CI: ${{ matrix.EDITION_LONG }}
SOURCEFORGE_NAME_CI: ${{ matrix.SOURCEFORGE_NAME }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Set parameters
- name: Set parameters
run: bash set-params-ci.sh
# Display parameters
- name: Display parameters
run: bin/welcome
- name: STAGE 0 - Test upload to SourceForge
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_PUBLIC_KEY: ${{ secrets.SSH_PUBLIC_KEY }}
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
run: bin/test-upload
- name: STAGE 1A - Provisioning (apt-get update)
run: sudo bin/provision-apt-get-update
- name: STAGE 1B - Provisioning (apt-get upgrade, main branch only)
run: sudo bin/provision-apt-get-upgrade
if: ${{ github.ref == 'refs/heads/main' }}
- name: STAGE 1C - Provisioning (apt-get install)
run: sudo bin/provision-apt-get-install
# Cache key needs to be updated to clear cache
- name: STAGE 2 - Cache downloaded ISO file
id: cache-downloaded-iso
uses: actions/cache@v3
with:
path: iso-downloaded
key: key-iso-file-2022-09-24
- name: STAGE 2 - Downloading the Linux ISO
run: bin/download-iso
- name: STAGE 3 - Mounting the virtual Linux DVD
run: sudo bin/mount-iso
- name: STAGE 4 - Copying the content from the virtual Linux DVD
run: sudo bin/copy-iso
- name: STAGE 5 - Mounting the compressed FS file
run: sudo bin/mount-compressed-fs
- name: STAGE 6 - Copying the squashfs files
run: sudo bin/copy-squashfs
- name: STAGE 7A - Mounting directories needed for chroot
run: sudo bin/chroot-mounts
- name: STAGE 7B - Updating the chroot environment
run: sudo bin/chroot-update
- name: STAGE 7C - Upgrading the chroot environment (main branch only)
run: sudo bin/chroot-upgrade
if: ${{ github.ref == 'refs/heads/main' }}
- name: STAGE 7D - Installing KeePassXC in chroot (main branch only)
run: sudo bin/chroot-keepassxc
if: ${{ github.ref == 'refs/heads/main' }}
- name: STAGE 7E - Ending the chroot mounts
run: sudo bin/chroot-unmount
- name: STAGE 7F - Post-chroot cleanup operations
run: sudo bin/chroot-cleanup
- name: STAGE 8 - Editing the files of the new ISO component files
run: sudo bin/edit-iso
- name: STAGE 9 - Editing the new SquashFS files
run: sudo bin/edit-squashfs
- name: STAGE 10 - Creating the new linuxfs file for the new ISO file
run: sudo bin/make-squashfs
- name: STAGE 11 - Creating the new Swift Linux ISO file
run: sudo bin/make-iso
- name: STAGE 12 - Uploading Swift Linux (main branch only)
run: bin/upload-iso
if: ${{ github.ref == 'refs/heads/main' }}