on: push: pull_request: workflow_dispatch: schedule: - cron: '0 0 * * 4' name: CI jobs: 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 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_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 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 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