From 83b1dfafdced10aca32dc3176f6e092b6f459a73 Mon Sep 17 00:00:00 2001 From: Stille Date: Tue, 8 Feb 2022 23:10:15 +0800 Subject: [PATCH] update workflow --- .github/workflows/build.yml | 42 ------------- .github/workflows/docker-build-release.yml | 71 ++++++++++++++++++++++ 2 files changed, 71 insertions(+), 42 deletions(-) delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/docker-build-release.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 437c0ec..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "serverstatus docker build" - -env: - PROJECT: serverstatus - -on: - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set tag - id: tag - run: | - TAG=$(cat Dockerfile | awk 'NR==4 {print $3}') - echo "::set-env name=TAG::$TAG" - - name: Docker Hub login - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin - - name: Set up Docker Buildx - id: buildx - uses: crazy-max/ghaction-docker-buildx@v1 - with: - buildx-version: latest - - name: Build Dockerfile - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - run: | - docker buildx build \ - --platform=linux/amd64,linux/arm64 \ - --output "type=image,push=true" \ - --file Dockerfile . \ - --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ env.PROJECT }}:latest \ - --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ env.PROJECT }}:${TAG} diff --git a/.github/workflows/docker-build-release.yml b/.github/workflows/docker-build-release.yml new file mode 100644 index 0000000..0c4087e --- /dev/null +++ b/.github/workflows/docker-build-release.yml @@ -0,0 +1,71 @@ +name: "docker build release" + +on: + workflow_dispatch: + +env: + PROJECT: serverstatus + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2.3.5 + + - name: Set tag + id: tag + run: | + if [[ -n $(cat Dockerfile | awk '{if($1~"ENV" && $2=="VERSION")print $3}') ]]; then + VERSION=$(cat Dockerfile | awk '{if($1~"ENV" && $2=="VERSION")print $3}') + echo "tag=$VERSION" >> $GITHUB_ENV + else + echo "tag=$(date +%Y)-$(date +%m)-$(date +%d)" >> $GITHUB_ENV + fi + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push to docker hub + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ${{ secrets.DOCKER_USERNAME }}/${{ env.PROJECT }}:latest + ${{ secrets.DOCKER_USERNAME }}/${{ env.PROJECT }}:${{ env.tag }} + + - name: Sync README.md to Docker Hub + uses: ms-jpq/sync-dockerhub-readme@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + repository: ${{ secrets.DOCKER_USERNAME }}/${{ env.PROJECT }} + readme: "./README.md" + + - name: Login harbor + uses: docker/login-action@v1 + with: + registry: ${{ secrets.HARBOR_REGISTRY }} + username: ${{ secrets.HARBOR_USERNAME }} + password: ${{ secrets.HARBOR_PASSWORD }} + + - name: Build and push to harbor + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ${{ secrets.HARBOR_REGISTRY }}/${{ secrets.HARBOR_USERNAME }}/${{ env.PROJECT }}:latest + ${{ secrets.HARBOR_REGISTRY }}/${{ secrets.HARBOR_USERNAME }}/${{ env.PROJECT }}:${{ env.tag }}