on: push: pull_request: workflow_dispatch: name: CI jobs: build: name: Build GitBook runs-on: ubuntu-latest steps: - uses: actions/checkout@master with: fetch-depth: 2 - name: Build uses: docker://yeasy/docker_practice with: args: build - name: vuepress run: | sudo rm -rf _book # npm i vuepress --save-dev npm i git clone https://github.com/docker-practice/.vuepress .vuepress2 cp -r .vuepress2/. .vuepress/ rm -rf .vuepress2 find . \( -path "./mesos" -o -path "./machine" -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.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 mesos/_images .vuepress/dist/mesos 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: Sync from yeasy/docker_practice@${{github.sha}} by PCIT 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: Sync from yeasy/docker_practice@${{github.sha}} by PCIT 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 4000:80 dockerpracticesig/docker_practice:vuepress curl 127.0.0.1:4000 env: DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}