Skip to content

fix: remove duplicate console auth api prefix #5

fix: remove duplicate console auth api prefix

fix: remove duplicate console auth api prefix #5

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"