Skip to content

Upload earlier

Upload earlier #6

Workflow file for this run

name: e2e-mac
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'main'
- 'e2e*'
tags:
- 'v*'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
env:
REPO_SLUG: "docker/compose-bin"
jobs:
e2e-mac:
name: Build and test
runs-on: ${{ matrix.os }}
timeout-minutes: 55
strategy:
fail-fast: false
matrix:
os: [macos-latest-xl]
# mode: [plugin, standalone]
mode: [plugin]
env:
GO111MODULE: "on"
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version-file: go.mod
cache: true
check-latest: true
# - name: Install and start Docker Desktop
# uses: docker/desktop-action/start@v0.1.0
# if: ${{ contains(matrix.os, 'macos-latest') }}
# Debugging why DD start fails, importing all steps from desktop-action/start
- name: Get Date
id: get-date
run: |
echo "::set-output name=date::$(/bin/date -u "+%Y%m%d")"
shell: bash
- name: Get Docker app cache
id: cache-docker-desktop-app
uses: actions/cache@v3
env:
cache-name: cache-docker-desktop-app
with:
path: /Applications/Docker.app
key: docker-desktop-app-mac-amd64-${{ steps.get-date.outputs.date }}
- name: Get Docker install settings cache
id: cache-docker-desktop-install-settings
uses: actions/cache@v3
env:
cache-name: cache-docker-desktop-install-settings
with:
path: ./cache/desktopInstallSettings/
key: docker-desktop-install-settings-mac-${{ steps.get-date.outputs.date }}
- name: Block calls to segment.io
id: redirect-segment
shell: bash
run: |
echo '127.0.0.2 api.segment.io' | sudo tee -a /etc/hosts
- name: Copy Desktop install settings in /Library
if: steps.cache-docker-desktop-install-settings.outputs.cache-hit == 'true'
shell: bash
run: |
echo "ls ./cache/desktopInstallSettings/"
ls ./cache/desktopInstallSettings/
sudo mkdir -p "/Library/Application Support/com.docker.docker"
sudo cp ./cache/desktopInstallSettings/* "/Library/Application Support/com.docker.docker/"
echo "/Library/Application Support/com.docker.docker/"
ls "/Library/Application Support/com.docker.docker/"
- name: Install Docker Desktop dmg
if: steps.cache-docker-desktop-install-settings.outputs.cache-hit != 'true'
shell: bash
run: |
sw_vers
mkdir ./temp
mkdir ./mount
wget -q -O ./temp/DockerDesktop.dmg https://desktop.docker.com/mac/main/amd64/Docker.dmg
/usr/bin/hdiutil attach -noverify ./temp/DockerDesktop.dmg -mountpoint ./mount/desktop -nobrowse
echo "dmg mounted"
sudo ./mount/desktop/Docker.app/Contents/MacOS/install --accept-license
echo "dmg installed"
echo "ls /Library/Application Support/com.docker.docker"
ls "/Library/Application Support/com.docker.docker" || true
mkdir -p ./cache/desktopInstallSettings
cp "/Library/Application Support/com.docker.docker/"* ./cache/desktopInstallSettings/
echo "ls ./cache/desktopInstallSettings/"
ls ./cache/desktopInstallSettings/ || true
/usr/bin/hdiutil detach ./mount/desktop
echo "dmg unmounted"
- name: Install Docker Desktop app
shell: bash
run: |
sudo mkdir /Library/PrivilegedHelperTools
sudo /Applications/Docker.app/Contents/MacOS/install config --user runner
sudo /Applications/Docker.app/Contents/MacOS/install vmnetd
echo "app installed"
/usr/bin/open /Applications/Docker.app --args --unattended --add-host-docker-internal-registry
echo "Docker starting..."
- name: Wait for Docker to be up and running
shell: bash
run: |
echo wait a minute
sleep 30
echo ...
sleep 30
echo ok
- name: Upload diagnostics
continue-on-error: true
run: |
/Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload
- name: List Docker resources on machine
run: |
docker ps --all
docker volume ls
docker network ls
docker image ls
- name: Remove Docker resources on machine
continue-on-error: true
run: |
docker kill $(docker ps -q)
docker rm -f $(docker ps -aq)
docker volume rm -f $(docker volume ls -q)
docker ps --all
- name: Unit tests
run: make test
- name: Build binaries
run: |
make
- name: Check arch of go compose binary
run: |
file ./bin/build/docker-compose
if: ${{ !contains(matrix.os, 'desktop-windows') }}
-
name: Test plugin mode
if: ${{ matrix.mode == 'plugin' }}
run: |
make e2e-compose
-
name: Test standalone mode
if: ${{ matrix.mode == 'standalone' }}
run: |
make e2e-compose-standalone