name: Dashboard image on: workflow_run: workflows: ["Run Tests"] branches: [master] types: - completed workflow_dispatch: jobs: on-success: if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Extract branch name run: | export BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/}) echo "##[set-output name=branch;]$BRANCH_NAME" if [ $BRANCH_NAME = "main" ] || [ $BRANCH_NAME = "master" ] then echo "##[set-output name=tag;]latest" else echo "##[set-output name=tag;]$BRANCH_NAME" fi id: extract_branch - name: xgo build uses: crazy-max/ghaction-xgo@v2 with: xgo_version: latest go_version: 1.18 dest: dist pkg: cmd/dashboard prefix: dashboard targets: linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/s390x v: true x: false race: false ldflags: -s -w buildmode: default - name: move dist run: | mkdir -p target/linux/{arm,arm64,386,amd64,s390x} mkdir target/linux/arm/v7/ mv dist/dashboard-linux-arm-7 target/linux/arm/v7/dashboard mv dist/dashboard-linux-arm64 target/linux/arm64/dashboard mv dist/dashboard-linux-386 target/linux/386/dashboard mv dist/dashboard-linux-amd64 target/linux/amd64/dashboard mv dist/dashboard-linux-s390x target/linux/s390x/dashboard - name: Log in to the GHCR uses: docker/login-action@master with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log in to the AliyunCS uses: docker/login-action@master with: registry: registry.cn-shanghai.aliyuncs.com username: ${{ secrets.ALI_USER }} password: ${{ secrets.ALI_PAT }} - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Set up image name run: | GHRC_IMAGE_NAME=$(echo "ghcr.io/${{ github.repository_owner }}/nezha-dashboard" | tr '[:upper:]' '[:lower:]') if [ ${{ github.repository_owner }} = "naiba" ] then ALI_IMAGE_NAME=$(echo "registry.cn-shanghai.aliyuncs.com/naibahq/nezha-dashboard") else ALI_IMAGE_NAME=$(echo "registry.cn-shanghai.aliyuncs.com/${{ github.repository_owner }}/nezha-dashboard" | tr '[:upper:]' '[:lower:]') fi echo "::set-output name=GHRC_IMAGE_NAME::$GHRC_IMAGE_NAME" echo "::set-output name=ALI_IMAGE_NAME::$ALI_IMAGE_NAME" id: image-name - name: Build dasbboard image And Push uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/arm,linux/386,linux/s390x push: true tags: | ${{ steps.image-name.outputs.GHRC_IMAGE_NAME }}:${{ steps.extract_branch.outputs.tag }} ${{ steps.image-name.outputs.ALI_IMAGE_NAME }}:${{ steps.extract_branch.outputs.tag }}