diff --git a/.github/workflows/develop.yaml b/.github/workflows/develop.yaml deleted file mode 100644 index 7a7b958..0000000 --- a/.github/workflows/develop.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: Deploy - -on: - push: - branches: ["develop"] - pull_request: - branches: ["develop"] - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Log in to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Get short Git commit ID - id: vars - run: echo "COMMIT_ID=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - - name: Build Docker image - run: docker build --build-arg VERSION=${{ env.COMMIT_ID }} -t ${{ secrets.DOCKER_USERNAME }}/ppanel-server-dev:${{ env.COMMIT_ID }} . - - - name: Push Docker image - run: docker push ${{ secrets.DOCKER_USERNAME }}/ppanel-server-dev:${{ env.COMMIT_ID }} - -# - name: Deploy to server -# uses: appleboy/ssh-action@v0.1.6 -# with: -# host: ${{ secrets.SSH_HOST }} -# username: ${{ secrets.SSH_USER }} -# key: ${{ secrets.SSH_PRIVATE_KEY }} -# script: | -# if [ $(docker ps -a -q -f name=ppanel-server-dev) ]; then -# echo "Stopping and removing existing ppanel-server container..." -# docker stop ppanel-server-dev -# docker rm ppanel-server-dev -# else -# echo "No existing ppanel-server-dev container running." -# fi -# -# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} -# docker run -d --restart=always --log-driver=journald --name ppanel-server-dev -p 8080:8080 -v /www/wwwroot/api/etc:/app/etc -v /www/wwwroot/api/logs:/app/logs --restart=always -d ${{ secrets.DOCKER_USERNAME }}/ppanel-server-dev:${{ env.COMMIT_ID }} -# \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 0480620..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,131 +0,0 @@ -name: Release -on: - push: - tags: - - 'v*' - -jobs: - build-docker: - runs-on: ubuntu-latest - env: - IMAGE_NAME: ppanel-server - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Extract version from git tag - id: version - run: echo "VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_ENV - - - name: Get short SHA - id: sha - run: echo "GIT_SHA=${GITHUB_SHA::8}" >> $GITHUB_ENV - - - name: Set BUILD_TIME env - run: echo BUILD_TIME=$(date --iso-8601=seconds) >> ${GITHUB_ENV} - - - - name: Build and push Docker image for main release - if: "!contains(github.ref_name, 'beta')" - uses: docker/build-push-action@v6 - with: - context: . - file: Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - build-args: | - VERSION=${{ env.VERSION }} - tags: | - ${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:latest - ${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}-${{ env.GIT_SHA }} - - - name: Build and push Docker image for beta release - if: contains(github.ref_name, 'beta') - uses: docker/build-push-action@v6 - with: - context: . - file: Dockerfile - platforms: linux/amd64,linux/arm64 - push: true - build-args: | - VERSION=${{ env.VERSION }} - tags: | - ${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:beta - ${{ secrets.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}-${{ env.GIT_SHA }} - - release-notes: - runs-on: ubuntu-latest - needs: build-docker - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: '1.21' - - - name: Install GoReleaser - run: | - go install github.com/goreleaser/goreleaser/v2@latest - - - name: Run GoReleaser - env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} - run: | - goreleaser check - goreleaser release --clean - - releases-matrix: - name: Release ppanel-server binary - runs-on: ubuntu-latest - needs: release-notes # wait for release-notes job to finish - strategy: - matrix: - # build and publish in parallel: linux/386, linux/amd64, linux/arm64, - # windows/386, windows/amd64, windows/arm64, darwin/amd64, darwin/arm64 - goos: [ linux, windows, darwin ] - goarch: [ '386', amd64, arm64 ] - exclude: - - goarch: '386' - goos: darwin - - - steps: - - uses: actions/checkout@v2 - - name: Extract version from git tag - id: version - run: echo "VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')" >> $GITHUB_ENV - - - name: Set BUILD_TIME env - run: echo BUILD_TIME=$(date --iso-8601=seconds) >> ${GITHUB_ENV} - - - uses: actions/checkout@v4 - - uses: wangyoucao577/go-release-action@v1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - goos: ${{ matrix.goos }} - goarch: ${{ matrix.goarch }} - asset_name: "ppanel-server-${{ matrix.goos }}-${{ matrix.goarch }}" - goversion: "https://dl.google.com/go/go1.23.3.linux-amd64.tar.gz" - project_path: "." - binary_name: "ppanel-server" - extra_files: LICENSE etc - ldflags: -X "github.com/perfect-panel/server/pkg/constant.Version=${{env.VERSION}}" -X "github.com/perfect-panel/server/pkg/constant.BuildTime=${{env.BUILD_TIME}}" diff --git a/.github/workflows/swagger.yaml b/.github/workflows/swagger.yaml deleted file mode 100644 index 177c2b0..0000000 --- a/.github/workflows/swagger.yaml +++ /dev/null @@ -1,81 +0,0 @@ -name: Go CI/CD with goctl and Swagger - -on: - # release: - # types: [published] - push: - branches: - - develop - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Install goctl - run: | - curl -L https://github.com/zeromicro/go-zero/releases/download/tools%2Fgoctl%2Fv1.7.2/goctl-v1.7.2-linux-amd64.tar.gz -o goctl-v1.7.2-linux-amd64.tar.gz - tar -xvzf goctl-v1.7.2-linux-amd64.tar.gz - chmod +x goctl - sudo mv goctl /usr/local/bin/goctl - goctl --version - - - name: Install goctl-swagger - run: | - curl -L https://github.com/tensionc/goctl-swagger/releases/download/v1.0.1/goctl-swagger-v1.0.1-linux-amd64.tar.gz -o goctl-swagger.tar.gz - tar -xvzf goctl-swagger.tar.gz - chmod +x goctl-swagger - sudo mv goctl-swagger /usr/local/bin/ - - - name: Generate Swagger file - run: | - mkdir -p swagger - goctl api plugin -plugin goctl-swagger='swagger -filename common.json -pack Response -response "[{\"name\":\"code\",\"type\":\"integer\",\"description\":\"状态码\"},{\"name\":\"msg\",\"type\":\"string\",\"description\":\"消息\"},{\"name\":\"data\",\"type\":\"object\",\"description\":\"数据\",\"is_data\":true}]";' -api ./apis/swagger_common.api -dir ./swagger - goctl api plugin -plugin goctl-swagger='swagger -filename user.json -pack Response -response "[{\"name\":\"code\",\"type\":\"integer\",\"description\":\"状态码\"},{\"name\":\"msg\",\"type\":\"string\",\"description\":\"消息\"},{\"name\":\"data\",\"type\":\"object\",\"description\":\"数据\",\"is_data\":true}]";' -api ./apis/swagger_user.api -dir ./swagger - goctl api plugin -plugin goctl-swagger='swagger -filename admin.json -pack Response -response "[{\"name\":\"code\",\"type\":\"integer\",\"description\":\"状态码\"},{\"name\":\"msg\",\"type\":\"string\",\"description\":\"消息\"},{\"name\":\"data\",\"type\":\"object\",\"description\":\"数据\",\"is_data\":true}]";' -api ./apis/swagger_admin.api -dir ./swagger - goctl api plugin -plugin goctl-swagger='swagger -filename ppanel.json -pack Response -response "[{\"name\":\"code\",\"type\":\"integer\",\"description\":\"状态码\"},{\"name\":\"msg\",\"type\":\"string\",\"description\":\"消息\"},{\"name\":\"data\",\"type\":\"object\",\"description\":\"数据\",\"is_data\":true}]";' -api ppanel.api -dir ./swagger - goctl api plugin -plugin goctl-swagger='swagger -filename node.json -pack Response -response "[{\"name\":\"code\",\"type\":\"integer\",\"description\":\"状态码\"},{\"name\":\"msg\",\"type\":\"string\",\"description\":\"消息\"},{\"name\":\"data\",\"type\":\"object\",\"description\":\"数据\",\"is_data\":true}]";' -api ./apis/swagger_node.api -dir ./swagger - - - - name: Verify Swagger file - run: | - test -f ./swagger/common.json - test -f ./swagger/user.json - test -f ./swagger/admin.json - - - name: Checkout target repository - uses: actions/checkout@v4 - with: - repository: perfect-panel/ppanel-docs - token: ${{ secrets.GH_TOKEN }} - path: ppanel-docs - persist-credentials: true - - - name: Verify or create public/swagger directory - run: | - mkdir -p ./ppanel-docs/public/swagger - - - name: Copy Swagger files - run: | - cp -rf swagger/* ppanel-docs/public/swagger - cd ppanel-docs - - - name: Check for file changes - run: | - cd ppanel-docs - git add . - git status - if [ "$(git status --porcelain)" ]; then - echo "Changes detected in the doc repository." - git config user.name "GitHub Actions" - git config user.email "actions@ppanel.dev" - git commit -m "Update Swagger files" - git push - else - echo "No changes detected." - exit 0 - fi -