From 1dbfd2c35f5c0e77f2d96c4b9d72baca27ff303b Mon Sep 17 00:00:00 2001 From: Jianbo Sun Date: Wed, 8 Jun 2022 15:23:14 +0800 Subject: [PATCH] update image build and push CI Signed-off-by: Jianbo Sun --- .github/workflows/documentation.yml | 61 ++-------------------- .github/workflows/image.yml | 79 +++++++++++++++++++++++++++++ Dockerfile.ci | 3 ++ 3 files changed, 86 insertions(+), 57 deletions(-) create mode 100644 .github/workflows/image.yml create mode 100644 Dockerfile.ci diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 996a74e031a..b5f5213ce63 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -2,11 +2,11 @@ name: documentation on: pull_request: - branches: - - main + branches: + - main push: - branches: - - main + branches: + - main jobs: check-link: @@ -85,56 +85,3 @@ jobs: run: ./ossutil --config-file .ossutilconfig config -i ${{ secrets.ACCESS_KEY_ID }} -k ${{ secrets.ACCESS_KEY_SECRET }} -e oss-accelerate.aliyuncs.com -c .ossutilconfig - name: Deply To OSS for kubevela.net run: ./ossutil --config-file .ossutilconfig sync -f build oss://kubevela-docs - - push-image: - if: github.event_name != 'pull_request' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - - name: Get the version - id: get_version - run: | - VERSION=${GITHUB_REF#refs/heads/} - if [[ ${GITHUB_REF} == "refs/heads/main" ]]; then - VERSION=latest - fi - echo ::set-output name=VERSION::${VERSION} - - name: Get git revision - id: vars - shell: bash - run: | - echo "::set-output name=git_revision::$(git rev-parse --short HEAD)" - - name: Login ghcr.io - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Login docker.io - uses: docker/login-action@v1 - with: - registry: docker.io - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - uses: docker/setup-qemu-action@v1 - - uses: docker/setup-buildx-action@v1 - with: - driver-opts: image=moby/buildkit:master - - uses: docker/build-push-action@v2 - name: Build & Pushing kubevela.io for Dockerhub and GHCR - with: - context: . - file: Dockerfile - labels: |- - org.opencontainers.image.source=https://github.com/${{ github.repository }} - org.opencontainers.image.revision=${{ github.sha }} - platforms: linux/amd64,linux/arm64 - push: ${{ github.event_name != 'pull_request' }} - build-args: | - GITVERSION=git-${{ steps.vars.outputs.git_revision }} - VERSION=${{ steps.get_version.outputs.VERSION }} - GOPROXY=https://proxy.golang.org - tags: |- - docker.io/oamdev/kubevela-io:${{ steps.get_version.outputs.VERSION }} - ghcr.io/${{ github.repository }}/kubevela-io:${{ steps.get_version.outputs.VERSION }} - diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml new file mode 100644 index 00000000000..9ee864f98fa --- /dev/null +++ b/.github/workflows/image.yml @@ -0,0 +1,79 @@ +name: Images +on: + push: + branches: + - main + tags: + - "v*" + workflow_dispatch: {} + +jobs: + push-image: + if: github.event_name != 'pull_request' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-node@v1 + with: + node-version: "14.x" + - uses: webfactory/ssh-agent@v0.5.0 + with: + ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }} + - name: Release to GitHub Pages + env: + USE_SSH: true + GIT_USER: git + DEPLOYMENT_BRANCH: gh-pages + run: | + git config --global user.email "actions@github.com" + git config --global user.name "gh-actions" + yarn add nodejieba + if [ -e yarn.lock ]; then + yarn install --frozen-lockfile + elif [ -e package-lock.json ]; then + npm ci + else + npm install + fi + npm run build + - name: Get the version + id: get_version + run: | + VERSION=${GITHUB_REF#refs/heads/} + if [[ ${GITHUB_REF} == "refs/heads/main" ]]; then + VERSION=latest + fi + echo ::set-output name=VERSION::${VERSION} + - name: Get git revision + id: vars + shell: bash + run: | + echo "::set-output name=git_revision::$(git rev-parse --short HEAD)" + - name: Login ghcr.io + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Login docker.io + uses: docker/login-action@v1 + with: + registry: docker.io + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + with: + driver-opts: image=moby/buildkit:master + - uses: docker/build-push-action@v2 + name: Build & Pushing kubevela.io for Dockerhub and GHCR + with: + context: . + file: Dockerfile.ci + labels: |- + org.opencontainers.image.source=https://github.com/${{ github.repository }} + org.opencontainers.image.revision=${{ github.sha }} + push: ${{ github.event_name != 'pull_request' }} + tags: |- + docker.io/oamdev/kubevela-io:${{ steps.get_version.outputs.VERSION }} + ghcr.io/${{ github.repository_owner }}/oamdev/kubevela-io:${{ steps.get_version.outputs.VERSION }} diff --git a/Dockerfile.ci b/Dockerfile.ci new file mode 100644 index 00000000000..da62104e2c9 --- /dev/null +++ b/Dockerfile.ci @@ -0,0 +1,3 @@ +FROM nginx:1.21 +WORKDIR / +COPY build /usr/share/nginx/html