|
14 | 14 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
15 | 15 | jobs:
|
16 | 16 | on-docker:
|
17 |
| - name: Ubuntu 20 Docker Provisioner |
| 17 | + name: Ubuntu 24 Docker Provisioner |
18 | 18 | # The type of runner that the job will run on
|
19 |
| - runs-on: ubuntu-20.04 |
| 19 | + runs-on: ubuntu-24.04 |
| 20 | + container: pentatonicfunk/vagrant-ubuntu-base-images:24.04 |
20 | 21 |
|
21 | 22 | # Steps represent a sequence of tasks that will be executed as part of the job
|
22 | 23 | steps:
|
23 | 24 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
24 | 25 | - uses: actions/checkout@v4
|
25 | 26 |
|
| 27 | + |
26 | 28 | # Make Symlinks
|
27 | 29 | - name: Create Vagrant Like Environment
|
28 | 30 | run: |
|
29 |
| - # uninstall pre installed packages (to test if extensions work) |
30 |
| - sudo apt-get -q --autoremove --purge remove php* mysql* |
31 |
| - sudo apt-get -q autoclean |
| 31 | + sudo DEBIAN_FRONTEND=noninteractive apt-get -yq autoclean |
| 32 | +
|
| 33 | + # Create vagrant group if it doesn't exist |
| 34 | + if ! getent group vagrant >/dev/null; then |
| 35 | + echo "Creating vagrant group" |
| 36 | + sudo groupadd -g 2000 vagrant |
| 37 | + fi |
| 38 | +
|
| 39 | + # Create vagrant user if it doesn't exist |
| 40 | + if ! id -u vagrant >/dev/null 2>&1; then |
| 41 | + echo "Creating vagrant user" |
| 42 | + sudo useradd -u 2000 -g vagrant -m vagrant |
| 43 | + fi |
32 | 44 |
|
33 |
| - # remove pre-installed composer |
34 |
| - if [ -f /usr/bin/composer ]; then |
35 |
| - sudo rm -f /usr/bin/composer |
| 45 | + # Create /srv if it doesn't exist |
| 46 | + if [ ! -d "/srv" ]; then |
| 47 | + echo "Preparing /srv" |
| 48 | + sudo mkdir -p /srv |
| 49 | + sudo chown vagrant:vagrant /srv |
36 | 50 | fi
|
37 | 51 |
|
38 |
| - # create vagrant user |
39 |
| - sudo groupadd -g 2000 vagrant |
40 |
| - sudo useradd -u 2000 -g vagrant -m vagrant |
| 52 | + echo "Copying files.." |
| 53 | +
|
| 54 | + # copy files provided by vagrant |
| 55 | + sudo cp -f "$GITHUB_WORKSPACE/config/default-config.yml" "$GITHUB_WORKSPACE/config/config.yml" |
| 56 | + sudo cp -f "$GITHUB_WORKSPACE/version" "/home/vagrant/version" |
| 57 | +
|
| 58 | + sudo mkdir -p /srv/certificates |
| 59 | + sudo cp -rT "$GITHUB_WORKSPACE/www" /srv/certificates |
| 60 | + sudo chown -R vagrant:vagrant /srv/certificates |
| 61 | +
|
| 62 | + sudo mkdir -p /srv/www |
| 63 | + sudo cp -rT "$GITHUB_WORKSPACE/www" /srv/www |
| 64 | + sudo chown -R vagrant:vagrant /srv/www |
| 65 | +
|
| 66 | + echo "Preparing Symlinks..." |
41 | 67 |
|
42 | 68 | # vvv_symlink function to sumulate synced folders
|
43 |
| - function vvv_symlink() { |
| 69 | + vvv_symlink() { |
44 | 70 | if [ ! -d "${1}" ]; then
|
45 | 71 | sudo mkdir -p "${1}"
|
46 | 72 | fi
|
47 | 73 | sudo chown -R vagrant:vagrant "${1}"
|
48 | 74 | sudo ln -sf "${1}" "${2}"
|
49 | 75 | }
|
50 | 76 |
|
51 |
| - # create srv folder |
52 |
| - sudo -u "vagrant" mkdir -p "/srv" |
53 |
| -
|
54 |
| - # copy files provided by vagrant |
55 |
| - sudo cp -f "$GITHUB_WORKSPACE/config/default-config.yml" "$GITHUB_WORKSPACE/config/config.yml" |
56 |
| - sudo cp -f "$GITHUB_WORKSPACE/version" "/home/vagrant/version" |
57 |
| -
|
58 | 77 | # make folders available
|
59 | 78 | vvv_symlink "$GITHUB_WORKSPACE/database/sql" "/srv/database"
|
60 | 79 | vvv_symlink "$GITHUB_WORKSPACE/config" "/srv/config"
|
61 | 80 | vvv_symlink "$GITHUB_WORKSPACE/provision" "/srv/provision"
|
62 |
| - vvv_symlink "$GITHUB_WORKSPACE/certificates" "/srv/certificates" |
63 |
| - vvv_symlink "$GITHUB_WORKSPACE/www" "/srv/www" |
64 |
| - vvv_symlink "$GITHUB_WORKSPACE/log/memcached" "/var/log/memcached" |
65 |
| - vvv_symlink "$GITHUB_WORKSPACE/log/nginx" "/var/log/nginx" |
66 |
| - vvv_symlink "$GITHUB_WORKSPACE/log/php" "/var/log/php" |
67 |
| - vvv_symlink "$GITHUB_WORKSPACE/log/provisioners" "/var/log/provisioners" |
68 | 81 |
|
69 | 82 | # Runs the provisioners in the expected order
|
70 | 83 | - name: Run provison-pre.sh
|
|
0 commit comments