From 1ae76ae10130055e50cdcd2a947fd241b0002781 Mon Sep 17 00:00:00 2001 From: Vaala Cat Date: Sat, 20 Jan 2024 03:26:03 +0800 Subject: [PATCH] devops: ci github action --- .github/workflows/latest.workflow.yml | 52 +++++++++++++++++++++++++++ .github/workflows/tag.workflow.yml | 51 ++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 .github/workflows/latest.workflow.yml create mode 100644 .github/workflows/tag.workflow.yml diff --git a/.github/workflows/latest.workflow.yml b/.github/workflows/latest.workflow.yml new file mode 100644 index 0000000..df30abe --- /dev/null +++ b/.github/workflows/latest.workflow.yml @@ -0,0 +1,52 @@ +name: Latest Release +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: npm setup + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: "1.21.x" + - name: npm install and build + run: | + cd www + npm install + npm run build + - name: Install dependencies + run: | + go mod tidy + - name: Compile server + run: bash ./build.sh + - uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + prerelease: false + automatic_release_tag: "latest" + files: | + dist/* + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v3 + with: + file: ./Dockerfile.standalone + push: true + platforms: linux/amd64,linux/arm64 + tags: vaalacat/frp-panel:latest diff --git a/.github/workflows/tag.workflow.yml b/.github/workflows/tag.workflow.yml new file mode 100644 index 0000000..86c2a04 --- /dev/null +++ b/.github/workflows/tag.workflow.yml @@ -0,0 +1,51 @@ +name: Version Tag Release +on: + push: + tags: + - "v*" + workflow_dispatch: +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Get version + id: get_version + run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//} + - uses: actions/checkout@v4 + - name: npm setup + uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: "1.21.x" + - name: npm install and build + run: | + npm install + npm run build + - name: Install dependencies + run: | + go mod tidy + - name: Compile server + run: bash ./build.sh + - uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + prerelease: false + automatic_release_tag: ${{ steps.get_version.outputs.VERSION }} + files: | + dist/* + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v3 + with: + push: true + platforms: linux/amd64,linux/arm64 + tags: vaalacat/frp-panel:${{ steps.get_version.outputs.VERSION }}