name: Release Pipeline on: push: tags: - 'v*' jobs: build-and-release: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' - name: Install Frontend Dependencies working-directory: ./frontend run: npm ci - name: Run Frontend Tests working-directory: ./frontend run: npm run test:run || echo "Tests failed or not configured, continuing..." - name: Install Backend Dependencies working-directory: ./backend run: npm ci - name: Run Backend Tests working-directory: ./backend run: npm run test || echo "Tests failed or not configured, continuing..." - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker Image run: docker build -t brainwave:${{ github.ref_name }} . - name: Save Docker Image to Tarball run: docker save brainwave:${{ github.ref_name }} | gzip > brainwave-docker-image.tar.gz - name: Create Release uses: softprops/action-gh-release@v2 with: files: brainwave-docker-image.tar.gz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}