name: CI on: push: pull_request: workflow_dispatch: defaults: run: shell: bash --noprofile --norc -exo pipefail {0} jobs: build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.1 - name: Build Gitbook uses: docker://yeasy/docker_practice with: args: build - name: Build Gitbook Docker Image if: github.repository == 'docker-practice/docker_practice' run: | sudo chmod -R 777 _book echo "FROM nginx:alpine" >> Dockerfile echo "COPY _book /usr/share/nginx/html" >> Dockerfile echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile export VCS_REF=`git rev-parse --short HEAD` docker build \ -t dockerpracticesig/docker_practice \ -t dockerpracticesig/docker_practice:gitbook \ --label org.opencontainers.image.revision=$VCS_REF \ --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ --label maintainer="https://github.com/docker-practice" \ . docker run -d --rm -p 4000:80 dockerpracticesig/docker_practice sleep 5 echo "::group::Test" curl 127.0.0.1:4000 echo "::endgroup::" echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker push dockerpracticesig/docker_practice docker push dockerpracticesig/docker_practice:gitbook env: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} - name: Upload Gitbook dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' env: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} PCIT_GIT_URL: github.com/docker-practice/zh-cn PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: _book PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 - name: vuepress run: | export NODE_OPTIONS=--openssl-legacy-provider sudo rm -rf _book npm i git clone https://github.com/docker-practice/.vuepress .vuepress2 cp -r .vuepress2/. .vuepress/ rm -rf .vuepress2 find . \( -path "./mesos" -o -path "./swarm_mode" -o -path "./node_modules" -o -path "./.vuepress" -o -path "./_book" -o -path "./CHANGELOG.md" -o -path "./CONTRIBUTING.md" \) -prune -o -name "*.md" -exec sed -i 'N;2a\\n' {} \; npx vuepress --version npm run vuepress:build echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME cp -r _images .vuepress/dist cp -r advanced_network/_images .vuepress/dist/advanced_network cp -r appendix/_images .vuepress/dist/appendix cp -r cases/ci/drone/_images .vuepress/dist/cases/ci/drone cp -r cases/os/_images .vuepress/dist/cases/os cp -r cloud/_images .vuepress/dist/cloud cp -r data_management/_images .vuepress/dist/data_management cp -r etcd/_images .vuepress/dist/etcd cp -r image/_images .vuepress/dist/image cp -r install/_images .vuepress/dist/install cp -r introduction/_images .vuepress/dist/introduction cp -r kubernetes/_images .vuepress/dist/kubernetes cp -r underly/_images .vuepress/dist/underly echo "include: [_images]" > .vuepress/dist/_config.yml - name: Upload Vuepress dist uses: docker://pcit/pages if: github.repository == 'docker-practice/docker_practice' env: PCIT_EMAIL: khs1994@khs1994.com PCIT_GIT_TOKEN: ${{ secrets.PCIT_GIT_TOKEN }} PCIT_GIT_URL: github.com/docker-practice/vuepress PCIT_KEEP_HISTORY: "true" PCIT_LOCAL_DIR: .vuepress/dist PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} PCIT_TARGET_BRANCH: master PCIT_USERNAME: khs1994 # - name: Set coding.net CNAME # run: | # echo "vuepress.mirror.docker-practice.com" > .vuepress/dist/CNAME # - name: Upload Vuepress dist to coding.net # uses: docker://pcit/pages # if: github.repository == 'docker-practice/docker_practice' # env: # PCIT_EMAIL: khs1994@khs1994.com # PCIT_GIT_TOKEN: ${{ secrets.CODING_GIT_TOKEN }} # PCIT_GIT_URL: e.coding.net/dpsigs/docker_practice # PCIT_KEEP_HISTORY: "true" # PCIT_LOCAL_DIR: .vuepress/dist # PCIT_MESSAGE: Build from yeasy/docker_practice@${{github.sha}} # PCIT_TARGET_BRANCH: master # PCIT_USERNAME: ptt0xjqzbke3 - name: Build vuepress docker image if: github.repository == 'docker-practice/docker_practice' run: | sudo rm -rf .vuepress/dist/.git echo "FROM nginx:alpine" > Dockerfile echo "COPY .vuepress/dist /usr/share/nginx/html" >> Dockerfile echo "COPY .docker/docker-entrypoint.sh /" >> Dockerfile echo "ENTRYPOINT [\"/docker-entrypoint.sh\"]" >> Dockerfile echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin VCS_REF=`git rev-parse --short HEAD` docker build -t dockerpracticesig/docker_practice:vuepress \ --label org.opencontainers.image.revision=$VCS_REF \ --label org.opencontainers.image.source="https://github.com/yeasy/docker_practice" \ --label maintainer="https://github.com/docker-practice" \ . docker push dockerpracticesig/docker_practice:vuepress docker run -it --rm -d -p 4001:80 dockerpracticesig/docker_practice:vuepress sleep 5 echo "::group::Test" curl 127.0.0.1:4001 echo "::endgroup::" env: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}