diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index ff2fcb2..430c1ad 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -1,17 +1,183 @@ on: - push + push: + pull_request: + workflow_dispatch: + schedule: + - cron: '0 0 * * 4' -name: ci +name: CI jobs: - ci: - runs-on: ubuntu-latest + 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: docker-practice/actions-setup-docker@master - timeout-minutes: 12 - - run: | - set -x + - 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 version + 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 - docker run --rm hello-world + 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