fix: remove duplicate console auth api prefix #5
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Aether Console Release | |
| on: | |
| push: | |
| tags: | |
| - "aether-console-v*" | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: aether-console-release-${{ github.ref }} | |
| cancel-in-progress: false | |
| env: | |
| APP_DIR: aether-ui/aether-console | |
| IMAGE_NAME: aether-console | |
| jobs: | |
| release: | |
| name: Build and publish image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10.30.3 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| cache-dependency-path: ${{ env.APP_DIR }}/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm install --frozen-lockfile | |
| - name: Run lint | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm lint | |
| - name: Check formatting | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm format:check | |
| - name: Run type check | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm type-check | |
| - name: Run tests | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm test | |
| - name: Build app | |
| working-directory: ${{ env.APP_DIR }} | |
| run: pnpm build | |
| - name: Resolve image metadata | |
| id: image | |
| run: | | |
| echo "image=${DOCKER_USERNAME}/${IMAGE_NAME}" >> "${GITHUB_OUTPUT}" | |
| echo "tag=${GITHUB_REF_NAME}" >> "${GITHUB_OUTPUT}" | |
| env: | |
| DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
| - name: Setup Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Build and push image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: ${{ env.APP_DIR }} | |
| file: ${{ env.APP_DIR }}/Dockerfile | |
| push: true | |
| build-args: | | |
| VITE_API_BASE_URL=/api/v1 | |
| tags: | | |
| ${{ steps.image.outputs.image }}:${{ steps.image.outputs.tag }} | |
| ${{ steps.image.outputs.image }}:latest-console | |
| deploy: | |
| name: Deploy to server | |
| runs-on: ubuntu-latest | |
| needs: release | |
| environment: production | |
| env: | |
| AETHER_CONSOLE_IMAGE: ${{ secrets.DOCKER_USERNAME }}/aether-console:${{ github.ref_name }} | |
| AETHER_CONSOLE_CONTAINER_NAME: ${{ vars.AETHER_CONSOLE_CONTAINER_NAME || 'aether-console' }} | |
| AETHER_BACKEND_UPSTREAM: ${{ vars.AETHER_BACKEND_UPSTREAM || 'http://host.docker.internal:8090' }} | |
| DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
| DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
| steps: | |
| - name: Deploy aether-console container | |
| uses: appleboy/ssh-action@v1.2.0 | |
| env: | |
| AETHER_CONSOLE_IMAGE: ${{ env.AETHER_CONSOLE_IMAGE }} | |
| AETHER_CONSOLE_CONTAINER_NAME: ${{ env.AETHER_CONSOLE_CONTAINER_NAME }} | |
| AETHER_BACKEND_UPSTREAM: ${{ env.AETHER_BACKEND_UPSTREAM }} | |
| DOCKER_USERNAME: ${{ env.DOCKER_USERNAME }} | |
| DOCKER_PASSWORD: ${{ env.DOCKER_PASSWORD }} | |
| with: | |
| host: ${{ secrets.AETHER_CONSOLE_DEPLOY_HOST }} | |
| username: ${{ secrets.AETHER_CONSOLE_DEPLOY_USER }} | |
| key: ${{ secrets.AETHER_CONSOLE_DEPLOY_SSH_KEY }} | |
| port: ${{ secrets.AETHER_CONSOLE_DEPLOY_PORT || '22' }} | |
| envs: AETHER_CONSOLE_IMAGE,AETHER_CONSOLE_CONTAINER_NAME,AETHER_BACKEND_UPSTREAM,DOCKER_USERNAME,DOCKER_PASSWORD | |
| script: | | |
| set -eu | |
| echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin | |
| docker pull "$AETHER_CONSOLE_IMAGE" | |
| docker rm -f "$AETHER_CONSOLE_CONTAINER_NAME" 2>/dev/null || true | |
| docker run -d \ | |
| --name "$AETHER_CONSOLE_CONTAINER_NAME" \ | |
| --restart unless-stopped \ | |
| --add-host=host.docker.internal:host-gateway \ | |
| -p 8888:8888 \ | |
| -e AETHER_BACKEND_UPSTREAM="$AETHER_BACKEND_UPSTREAM" \ | |
| "$AETHER_CONSOLE_IMAGE" | |
| docker ps --filter "name=$AETHER_CONSOLE_CONTAINER_NAME" |