Files
vision-start/.gitea/workflows/main.yaml
T
ivanch 4885fd68c1
Build Pull Request / Build Pull Request Archive (pull_request) Successful in 14s
Build Pull Request / Capture Pull Request Screenshots (pull_request) Successful in 1m3s
Build Pull Request / Publish Pull Request Screenshot Preview (pull_request) Successful in 1s
fixing pipeline
2026-08-11 19:55:29 -03:00

110 lines
2.8 KiB
YAML

name: Build and Release to Staging
on:
push:
branches:
- main
workflow_dispatch:
env:
REGISTRY_HOST: git.ivanch.me
REGISTRY_USERNAME: ivanch
IMAGE_NAME: ${{ env.REGISTRY_HOST }}/ivanch/vision-start
IMAGE_TAG: staging
jobs:
build:
name: Build Vision Start
runs-on: ubuntu-amd64
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'npm'
- name: Setup required tools
run: sudo apt-get install zip jq curl -y
- name: Install JS dependencies
run: npm ci
- name: Run build
run: |
bash scripts/prepare_release.sh
npm run build
- name: Prepare release
run: |
mkdir -p vision-start
mv dist vision-start/
mv extension vision-start/
mv manifest.json vision-start/
- name: Set archive name
run: |
SAFE_REF="${GITEA_REF_NAME//\//-}"
ARCHIVE="vision-start-${SAFE_REF}.zip"
if [ -n "${GITEA_ENV:-}" ]; then echo "ARCHIVE_NAME=${ARCHIVE}" >> "$GITEA_ENV"; fi
if [ -n "${GITHUB_ENV:-}" ]; then echo "ARCHIVE_NAME=${ARCHIVE}" >> "$GITHUB_ENV"; fi
env:
GITEA_REF_NAME: ${{ gitea.ref_name }}
- name: Create zip archive
run: |
cd vision-start
zip -r "../${ARCHIVE_NAME}" *
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: release-zip
path: ${{ env.ARCHIVE_NAME }}
build_vision_start:
name: Build Vision Start Image
runs-on: ubuntu-amd64
needs: build
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Log in to Container Registry
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" \
| docker login "${{ env.REGISTRY_HOST }}" \
-u "${{ env.REGISTRY_USERNAME }}" \
--password-stdin
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and Push Multi-Arch Image
uses: docker/build-push-action@v6
with:
push: true
context: .
platforms: linux/amd64,linux/arm64
tags: |
${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
deploy_vision_start:
name: Deploy Vision Start (staging)
runs-on: ubuntu-amd64
needs: build_vision_start
steps:
- name: Recreate Container
uses: appleboy/ssh-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
script: |
cd ${{ secrets.STAGING_DIR }}
docker compose pull
docker compose up -d --force-recreate