2023-05-18 15:48:04 +00:00
|
|
|
on:
|
2023-05-18 15:49:23 +00:00
|
|
|
push:
|
|
|
|
pull_request:
|
|
|
|
workflow_dispatch:
|
|
|
|
schedule:
|
|
|
|
- cron: '0 0 * * 4'
|
2023-05-18 15:48:04 +00:00
|
|
|
|
2023-05-18 15:49:23 +00:00
|
|
|
name: CI
|
2023-05-18 15:48:04 +00:00
|
|
|
|
|
|
|
jobs:
|
2023-05-18 15:49:23 +00:00
|
|
|
docker:
|
|
|
|
name: Docker
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash --noprofile --norc -exo pipefail {0}
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
docker_version:
|
|
|
|
- 18.09
|
|
|
|
- 19.03
|
|
|
|
- "20.10"
|
|
|
|
docker_channel:
|
|
|
|
- stable
|
|
|
|
- test
|
|
|
|
# - nightly
|
|
|
|
os:
|
|
|
|
- ubuntu-20.04
|
|
|
|
- ubuntu-22.04
|
|
|
|
- ubuntu-latest
|
|
|
|
- macos-12
|
|
|
|
include:
|
|
|
|
# macOS
|
|
|
|
- os: macos-latest
|
|
|
|
docker_channel: stable
|
|
|
|
docker_version: "20.10"
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
# timeout-minutes: 20
|
2023-05-18 15:48:04 +00:00
|
|
|
steps:
|
2023-05-18 15:49:23 +00:00
|
|
|
- uses: actions/checkout@main
|
|
|
|
with:
|
|
|
|
fetch-depth: 2
|
|
|
|
- uses: azure/docker-login@v1
|
|
|
|
if: |
|
|
|
|
github.event_name == 'push'
|
|
|
|
with:
|
|
|
|
# login-server: contoso.azurecr.io
|
|
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: setup Docker
|
|
|
|
uses: ./
|
|
|
|
# uses: docker-practice/actions-setup-docker@master
|
|
|
|
with:
|
|
|
|
docker_version: ${{ matrix.docker_version }}
|
|
|
|
docker_channel: ${{ matrix.docker_channel }}
|
|
|
|
- name: Setup tmate session
|
|
|
|
uses: mxschmitt/action-tmate@master
|
|
|
|
if: ${{ failure() }}
|
|
|
|
timeout-minutes: 60
|
|
|
|
- name: Test
|
|
|
|
run: |
|
|
|
|
# set -x
|
|
|
|
docker version
|
|
|
|
cat /etc/docker/daemon.json || true
|
|
|
|
cat /Users/runner/.docker/daemon.json || true
|
|
|
|
docker buildx version || true
|
|
|
|
docker buildx ls || true
|
2023-05-18 15:48:04 +00:00
|
|
|
|
2023-05-18 15:49:23 +00:00
|
|
|
docker-default:
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-latest
|
|
|
|
- macos-latest
|
|
|
|
# timeout-minutes: 20
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash --noprofile --norc -exo pipefail {0}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@main
|
|
|
|
with:
|
|
|
|
fetch-depth: 2
|
|
|
|
- name: setup docker(default)
|
|
|
|
uses: ./
|
|
|
|
# uses: docker-practice/actions-setup-docker@master
|
|
|
|
- name: Setup tmate session
|
|
|
|
uses: mxschmitt/action-tmate@master
|
|
|
|
if: ${{ failure() }}
|
|
|
|
timeout-minutes: 60
|
|
|
|
- run: docker version
|
|
|
|
# Login docker hub or other docker registry
|
|
|
|
# test docker login
|
|
|
|
- uses: azure/docker-login@v1
|
|
|
|
if: |
|
|
|
|
github.event_name == 'push'
|
|
|
|
with:
|
|
|
|
# login-server: contoso.azurecr.io
|
|
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
# - name: docker login by cli
|
|
|
|
# run: |
|
|
|
|
# echo ${docker_password} | docker login -u ${docker_username} --password-stdin ${docker_registry:-}
|
|
|
|
# if: |
|
|
|
|
# github.event_name == 'push'
|
|
|
|
# env:
|
|
|
|
# # docker_registry: contoso.azurecr.io
|
|
|
|
# docker_username: ${{ secrets.DOCKER_USERNAME }}
|
|
|
|
# docker_password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Build Docker Image
|
|
|
|
run: |
|
|
|
|
# set -x
|
|
|
|
|
|
|
|
push=
|
|
|
|
if [ "${push_image}" = 'true' ];then
|
|
|
|
push='--push'
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo 'FROM --platform=${TARGETPLATFORM} alpine' > Dockerfile
|
|
|
|
echo 'RUN set -x ; apk add --no-cache curl' >> Dockerfile
|
|
|
|
|
|
|
|
# fix macos docker auth
|
|
|
|
sed -i "" 's/credsStore/_credsStore/g' ${DOCKER_CONFIG}/config.json || true
|
2023-05-18 15:48:04 +00:00
|
|
|
|
2023-05-18 15:49:23 +00:00
|
|
|
tag=${version:-20.10}-${channel:-stable}-${os}
|
|
|
|
docker buildx build \
|
|
|
|
-t khs1994/alpine:${tag} \
|
|
|
|
${push} \
|
|
|
|
--platform linux/arm64,linux/amd64 \
|
|
|
|
.
|
|
|
|
env:
|
|
|
|
os: ${{ matrix.os }}
|
|
|
|
# version: ${{ matrix.docker_version }}
|
|
|
|
# channel: ${{ matrix.docker_channel }}
|
|
|
|
push_image: ${{ github.event_name == 'push' }}
|
|
|
|
|
|
|
|
docker-nightly:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-18.04
|
|
|
|
- ubuntu-20.04
|
|
|
|
- ubuntu-22.04
|
|
|
|
- ubuntu-latest
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash --noprofile --norc -exo pipefail {0}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@main
|
|
|
|
with:
|
|
|
|
fetch-depth: 2
|
|
|
|
- uses: azure/docker-login@v1
|
|
|
|
if: |
|
|
|
|
github.event_name == 'push'
|
|
|
|
with:
|
|
|
|
# login-server: contoso.azurecr.io
|
|
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: setup docker
|
|
|
|
uses: ./
|
|
|
|
# uses: docker-practice/actions-setup-docker@master
|
|
|
|
with:
|
|
|
|
docker_nightly_version: snapshot-20210202
|
|
|
|
docker_channel: nightly
|
|
|
|
- run: docker version
|
|
|
|
|
|
|
|
notsupport-platform:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- windows-latest
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@main
|
|
|
|
with:
|
|
|
|
fetch-depth: 2
|
|
|
|
- name: setup docker(default)
|
|
|
|
uses: ./
|
|
|
|
# uses: docker-practice/actions-setup-docker@master
|