Deploy translator service alongside translation demo frontend #4
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: Deploy Translation Demo as static page | |
| on: | |
| push: | |
| branches: ["main", "fce-3482/translation-backend"] | |
| paths: | |
| - "translation-demo/**" | |
| - ".github/workflows/translation-demo-deploy.yml" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: "translation-demo" | |
| cancel-in-progress: false | |
| jobs: | |
| build-deploy: | |
| if: github.actor != 'dependabot[bot]' | |
| environment: | |
| name: translation-demo | |
| url: ${{ vars.TRANSLATION_DEMO_URL }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: translation-demo | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: "22" | |
| cache: "yarn" | |
| cache-dependency-path: ./translation-demo/yarn.lock | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Build project | |
| run: yarn build | |
| env: | |
| VITE_SANDBOX_API_URL: ${{ secrets.VITE_SANDBOX_API_URL }} | |
| - name: Copy files to deployment server | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ vars.TRANSLATION_DEMO_HOST }} | |
| username: ${{ secrets.TRANSLATION_DEMO_USERNAME }} | |
| key: ${{ secrets.TRANSLATION_DEMO_PRIVATE_KEY }} | |
| rm: true | |
| strip_components: 2 | |
| source: translation-demo/dist/* | |
| target: ${{ secrets.TRANSLATION_DEMO_ROOT_DIR }} | |
| deploy-translator: | |
| if: github.actor != 'dependabot[bot]' | |
| environment: | |
| name: translation-demo | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Copy service to deployment server | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ vars.TRANSLATION_DEMO_HOST }} | |
| username: ${{ secrets.TRANSLATION_DEMO_USERNAME }} | |
| key: ${{ secrets.TRANSLATION_DEMO_PRIVATE_KEY }} | |
| rm: true | |
| strip_components: 2 | |
| source: translation-demo/service/* | |
| target: ${{ secrets.TRANSLATOR_SERVICE_DIR }} | |
| - name: Install dependencies and restart translator | |
| uses: appleboy/ssh-action@v1.2.2 | |
| with: | |
| host: ${{ vars.TRANSLATION_DEMO_HOST }} | |
| username: ${{ secrets.TRANSLATION_DEMO_USERNAME }} | |
| key: ${{ secrets.TRANSLATION_DEMO_PRIVATE_KEY }} | |
| script_stop: true | |
| envs: SERVICE_DIR,FISHJAM_ID,FISHJAM_MANAGEMENT_TOKEN,GEMINI_API_KEY | |
| script: | | |
| cd "$SERVICE_DIR" | |
| umask 077 | |
| printf 'FISHJAM_ID=%s\nFISHJAM_MANAGEMENT_TOKEN=%s\nGEMINI_API_KEY=%s\n' \ | |
| "$FISHJAM_ID" "$FISHJAM_MANAGEMENT_TOKEN" "$GEMINI_API_KEY" > .env | |
| uv sync | |
| systemctl --user restart translator | |
| env: | |
| SERVICE_DIR: ${{ secrets.TRANSLATOR_SERVICE_DIR }} | |
| FISHJAM_ID: ${{ secrets.FISHJAM_ID }} | |
| FISHJAM_MANAGEMENT_TOKEN: ${{ secrets.FISHJAM_MANAGEMENT_TOKEN }} | |
| GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} |