name: Deploy frontend on: push: branches: - master workflow_dispatch: defaults: run: working-directory: frontend jobs: deploy-frontend: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Import Secrets id: import-secrets uses: hashicorp/vault-action@v3.4.0 with: url: https://vault.d3m0k1d.ru token: ${{ secrets.VAULT_TOKEN }} secrets: | secrets/site/prod/data/gitea TOKEN | GITEA_TOKEN ; secrets/site/prod/data/server SSH_KEY | SSH_KEY ; secrets/site/prod/data/server USER | SERVER_USER ; secrets/site/prod/data/server HOST | SERVER_HOST ; secrets/site/prod/data/server PORT | SERVER_PORT - name: Login to registry uses: docker/login-action@v3 with: registry: gitea.d3m0k1d.ru username: d3m0k1d password: ${{ steps.import-secrets.outputs.TOKEN }} - name: Download QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push uses: docker/build-push-action@v5 with: context: ./frontend file: ./frontend/Dockerfile push: true tags: gitea.d3m0k1d.ru/d3m0k1d/frontend:latest cache-from: type=gha cache-to: type=gha,mode=max - name: Deploy at server uses: appleboy/ssh-action@v1.2.0 with: host: ${{ steps.import-secrets.outputs.HOST }} port: ${{ steps.import-secrets.outputs.PORT }} username: ${{ steps.import-secrets.outputs.USER }} key: ${{ steps.import-secrets.outputs.SSH_KEY }} script: | docker login -u d3m0k1d -p ${{ steps.import-secrets.outputs.TOKEN }} gitea.d3m0k1d.ru docker pull gitea.d3m0k1d.ru/d3m0k1d/frontend:latest docker rm -f d3m0k1d-frontend || true docker run --name d3m0k1d-frontend -d -p 80:80 --restart unless-stopped gitea.d3m0k1d.ru/d3m0k1d/frontend:latest