-
Notifications
You must be signed in to change notification settings - Fork 8
/
action.yml
96 lines (94 loc) · 3.39 KB
/
action.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
name: "Setup Docker on macOS"
description: "Setup Docker on macOS using Colima, Lima-VM, and Homebrew."
inputs:
upgrade-qemu:
description: "Upgrade QEMU to the latest version. Add a lot of time to the job."
required: false
default: "false"
outputs:
colima-version:
value: ${{ steps.colima-version.outputs.version }}
description: Version of Colima
docker-client-version:
value: ${{ steps.docker-client-version.outputs.version }}
description: Version of the Docker client
docker-compose-version:
value: ${{ steps.docker-compose-version.outputs.version }}
description: Version of Docker Compose
runs:
using: "composite"
steps:
- name: Safety check
if: runner.os != 'macOS'
run: |
echo "Not a macOS runner, exiting."
exit 1
shell: bash
- name: Update Homebrew
run: |
brew update --preinstall
shell: bash
- name: Install Colima
env:
GH_TOKEN: ${{ github.token }}
run: |
LIMA_VERSION=$(gh release -R lima-vm/lima view --json tagName -q ".tagName")
curl -fsSL "https://github.com/lima-vm/lima/releases/download/${LIMA_VERSION}/lima-${LIMA_VERSION:1}-$(uname -s)-$(uname -m).tar.gz" | tar Cxzvm /usr/local
COLIMA_VERSION=$(gh release -R abiosoft/colima view --json tagName -q ".tagName")
curl -LO https://github.com/abiosoft/colima/releases/download/${COLIMA_VERSION}/colima-$(uname)-$(uname -m)
# install in $PATH
install colima-$(uname)-$(uname -m) /usr/local/bin/colima
shell: bash
- name: Install QEMU, Docker client, and Docker Compose
env:
HOMEBREW_NO_AUTO_UPDATE: "1"
HOMEBREW_NO_INSTALL_UPGRADE: "1"
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1"
run: |
brew install docker docker-compose qemu 2>&1 | tee install.log
shell: bash
- name: Configure Docker Compose plugin
run: |
mkdir -p ~/.docker/cli-plugins
ln -sfn "$(brew --prefix)/opt/docker-compose/bin/docker-compose" ~/.docker/cli-plugins/docker-compose
shell: bash
- name: Check QEMU version
if: inputs.upgrade-qemu != 'true'
run: |
if grep -q "qemu 8.1.0 is already installed" install.log
then
echo "Detected broken QEMU bottle installed by brew, removing and reinstalling."
brew reinstall qemu
fi
shell: bash
- name: Upgrade QEMU
if: inputs.upgrade-qemu == 'true'
env:
HOMEBREW_NO_AUTO_UPDATE: "1"
HOMEBREW_NO_INSTALL_UPGRADE: "1"
run: brew upgrade qemu
shell: bash
- name: Start Colima
run: colima start
shell: bash
- id: docker-client-version
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "version<<$EOF" >> "$GITHUB_OUTPUT"
docker version >> "$GITHUB_OUTPUT"
echo "$EOF" >> "$GITHUB_OUTPUT"
shell: bash
- id: docker-compose-version
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "version<<$EOF" >> "$GITHUB_OUTPUT"
docker compose version >> "$GITHUB_OUTPUT"
echo "$EOF" >> "$GITHUB_OUTPUT"
shell: bash
- id: colima-version
run: |
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "version<<$EOF" >> "$GITHUB_OUTPUT"
colima version >> "$GITHUB_OUTPUT"
echo "$EOF" >> "$GITHUB_OUTPUT"
shell: bash