diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml deleted file mode 100644 index b6742f80..00000000 --- a/.forgejo/workflows/ci.yml +++ /dev/null @@ -1,257 +0,0 @@ ---- -name: Debian Image Builder Frontend CI/CD - -on: - push: - branches: [main, develop] - pull_request: - branches: [main] - workflow_dispatch: - -env: - NODE_VERSION: "18" - DEBIAN_FRONTEND: noninteractive - -jobs: - build-and-test: - name: Build and Test Frontend - runs-on: ubuntu-latest - container: - image: node:18-bullseye - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install build dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - git \ - ca-certificates \ - python3 - - - name: Install Node.js dependencies - run: | - npm ci - npm run build || echo "Build script not found" - - - name: Run tests - run: | - if [ -f package.json ] && npm run test; then - npm test - else - echo "No test script found, skipping tests" - fi - - - name: Run linting - run: | - if [ -f package.json ] && npm run lint; then - npm run lint - else - echo "No lint script found, skipping linting" - fi - - - name: Build production bundle - run: | - if [ -f package.json ] && npm run build; then - npm run build - else - echo "No build script found" - fi - - - name: Upload build artifacts - uses: actions/upload-artifact@v4 - with: - name: frontend-build - path: | - dist/ - build/ - retention-days: 30 - - package: - name: Package Frontend - runs-on: ubuntu-latest - container: - image: node:18-bullseye - needs: build-and-test - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install build dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - devscripts \ - debhelper \ - git \ - ca-certificates \ - python3 - - - name: Install Node.js dependencies - run: npm ci - - - name: Build production bundle - run: | - if [ -f package.json ] && npm run build; then - npm run build - else - echo "No build script found" - fi - - - name: Create debian directory - run: | - mkdir -p debian - cat > debian/control << EOF -Source: debian-image-builder-frontend -Section: web -Priority: optional -Maintainer: Debian Forge Team -Build-Depends: debhelper (>= 13), nodejs, npm, git, ca-certificates -Standards-Version: 4.6.2 - -Package: debian-image-builder-frontend -Architecture: all -Depends: \${misc:Depends}, nodejs, nginx -Description: Debian Image Builder Frontend - Web-based frontend for Debian Image Builder with Cockpit integration. - Provides a user interface for managing image builds, blueprints, - and system configurations through a modern React application. -EOF - - cat > debian/rules << EOF -#!/usr/bin/make -f -%: - dh \$@ - -override_dh_auto_install: - dh_auto_install - mkdir -p debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend - mkdir -p debian/debian-image-builder-frontend/etc/nginx/sites-available - mkdir -p debian/debian-image-builder-frontend/etc/cockpit - - # Copy built frontend files - if [ -d dist ]; then - cp -r dist/* debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - elif [ -d build ]; then - cp -r build/* debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - fi - - # Copy source files for development - cp -r src debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - cp package.json debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - - # Create nginx configuration - cat > debian/debian-image-builder-frontend/etc/nginx/sites-available/debian-image-builder-frontend << 'NGINX_EOF' -server { - listen 80; - server_name localhost; - root /usr/share/debian-image-builder-frontend; - index index.html; - - location / { - try_files \$uri \$uri/ /index.html; - } - - location /api/ { - proxy_pass http://localhost:8080/; - proxy_set_header Host \$host; - proxy_set_header X-Real-IP \$remote_addr; - } -} -NGINX_EOF - - # Create cockpit manifest - cat > debian/debian-image-builder-frontend/etc/cockpit/debian-image-builder.manifest << 'COCKPIT_EOF' -{ - "version": 1, - "manifest": { - "name": "debian-image-builder", - "version": "1.0.0", - "title": "Debian Image Builder", - "description": "Build and manage Debian atomic images", - "url": "/usr/share/debian-image-builder-frontend", - "icon": "debian-logo", - "requires": { - "cockpit": ">= 200" - } - } -} -COCKPIT_EOF -EOF - - cat > debian/changelog << EOF -debian-image-builder-frontend (1.0.0-1) unstable; urgency=medium - - * Initial release - * Debian Image Builder Frontend with Cockpit integration - * React-based web interface for image management - - -- Debian Forge Team $(date -R) -EOF - - cat > debian/compat << EOF -13 -EOF - - chmod +x debian/rules - - - name: Build Debian package - run: | - dpkg-buildpackage -us -uc -b - ls -la ../*.deb - - - name: Upload Debian package - uses: actions/upload-artifact@v4 - with: - name: debian-image-builder-frontend-deb - path: ../*.deb - retention-days: 30 - - cockpit-integration: - name: Test Cockpit Integration - runs-on: ubuntu-latest - container: - image: node:18-bullseye - needs: build-and-test - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install Node.js dependencies - run: npm ci - - - name: Test cockpit integration - run: | - echo "Testing Cockpit integration..." - if [ -d cockpit ]; then - echo "Cockpit directory found:" - ls -la cockpit/ - else - echo "No cockpit directory found" - fi - - if [ -f package.json ]; then - echo "Package.json scripts:" - npm run - fi diff --git a/.forgejo/workflows/ci.yml.disabled b/.forgejo/workflows/ci.yml.disabled deleted file mode 100644 index b6742f80..00000000 --- a/.forgejo/workflows/ci.yml.disabled +++ /dev/null @@ -1,257 +0,0 @@ ---- -name: Debian Image Builder Frontend CI/CD - -on: - push: - branches: [main, develop] - pull_request: - branches: [main] - workflow_dispatch: - -env: - NODE_VERSION: "18" - DEBIAN_FRONTEND: noninteractive - -jobs: - build-and-test: - name: Build and Test Frontend - runs-on: ubuntu-latest - container: - image: node:18-bullseye - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install build dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - git \ - ca-certificates \ - python3 - - - name: Install Node.js dependencies - run: | - npm ci - npm run build || echo "Build script not found" - - - name: Run tests - run: | - if [ -f package.json ] && npm run test; then - npm test - else - echo "No test script found, skipping tests" - fi - - - name: Run linting - run: | - if [ -f package.json ] && npm run lint; then - npm run lint - else - echo "No lint script found, skipping linting" - fi - - - name: Build production bundle - run: | - if [ -f package.json ] && npm run build; then - npm run build - else - echo "No build script found" - fi - - - name: Upload build artifacts - uses: actions/upload-artifact@v4 - with: - name: frontend-build - path: | - dist/ - build/ - retention-days: 30 - - package: - name: Package Frontend - runs-on: ubuntu-latest - container: - image: node:18-bullseye - needs: build-and-test - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install build dependencies - run: | - apt-get update - apt-get install -y \ - build-essential \ - devscripts \ - debhelper \ - git \ - ca-certificates \ - python3 - - - name: Install Node.js dependencies - run: npm ci - - - name: Build production bundle - run: | - if [ -f package.json ] && npm run build; then - npm run build - else - echo "No build script found" - fi - - - name: Create debian directory - run: | - mkdir -p debian - cat > debian/control << EOF -Source: debian-image-builder-frontend -Section: web -Priority: optional -Maintainer: Debian Forge Team -Build-Depends: debhelper (>= 13), nodejs, npm, git, ca-certificates -Standards-Version: 4.6.2 - -Package: debian-image-builder-frontend -Architecture: all -Depends: \${misc:Depends}, nodejs, nginx -Description: Debian Image Builder Frontend - Web-based frontend for Debian Image Builder with Cockpit integration. - Provides a user interface for managing image builds, blueprints, - and system configurations through a modern React application. -EOF - - cat > debian/rules << EOF -#!/usr/bin/make -f -%: - dh \$@ - -override_dh_auto_install: - dh_auto_install - mkdir -p debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend - mkdir -p debian/debian-image-builder-frontend/etc/nginx/sites-available - mkdir -p debian/debian-image-builder-frontend/etc/cockpit - - # Copy built frontend files - if [ -d dist ]; then - cp -r dist/* debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - elif [ -d build ]; then - cp -r build/* debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - fi - - # Copy source files for development - cp -r src debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - cp package.json debian/debian-image-builder-frontend/usr/share/debian-image-builder-frontend/ - - # Create nginx configuration - cat > debian/debian-image-builder-frontend/etc/nginx/sites-available/debian-image-builder-frontend << 'NGINX_EOF' -server { - listen 80; - server_name localhost; - root /usr/share/debian-image-builder-frontend; - index index.html; - - location / { - try_files \$uri \$uri/ /index.html; - } - - location /api/ { - proxy_pass http://localhost:8080/; - proxy_set_header Host \$host; - proxy_set_header X-Real-IP \$remote_addr; - } -} -NGINX_EOF - - # Create cockpit manifest - cat > debian/debian-image-builder-frontend/etc/cockpit/debian-image-builder.manifest << 'COCKPIT_EOF' -{ - "version": 1, - "manifest": { - "name": "debian-image-builder", - "version": "1.0.0", - "title": "Debian Image Builder", - "description": "Build and manage Debian atomic images", - "url": "/usr/share/debian-image-builder-frontend", - "icon": "debian-logo", - "requires": { - "cockpit": ">= 200" - } - } -} -COCKPIT_EOF -EOF - - cat > debian/changelog << EOF -debian-image-builder-frontend (1.0.0-1) unstable; urgency=medium - - * Initial release - * Debian Image Builder Frontend with Cockpit integration - * React-based web interface for image management - - -- Debian Forge Team $(date -R) -EOF - - cat > debian/compat << EOF -13 -EOF - - chmod +x debian/rules - - - name: Build Debian package - run: | - dpkg-buildpackage -us -uc -b - ls -la ../*.deb - - - name: Upload Debian package - uses: actions/upload-artifact@v4 - with: - name: debian-image-builder-frontend-deb - path: ../*.deb - retention-days: 30 - - cockpit-integration: - name: Test Cockpit Integration - runs-on: ubuntu-latest - container: - image: node:18-bullseye - needs: build-and-test - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js environment - run: | - node --version - npm --version - - - name: Install Node.js dependencies - run: npm ci - - - name: Test cockpit integration - run: | - echo "Testing Cockpit integration..." - if [ -d cockpit ]; then - echo "Cockpit directory found:" - ls -la cockpit/ - else - echo "No cockpit directory found" - fi - - if [ -f package.json ]; then - echo "Package.json scripts:" - npm run - fi diff --git a/.tekton/image-builder-frontend-pull-request.yaml b/.tekton/image-builder-frontend-pull-request.yaml index 111fde6d..fcfbdb05 100644 --- a/.tekton/image-builder-frontend-pull-request.yaml +++ b/.tekton/image-builder-frontend-pull-request.yaml @@ -152,7 +152,7 @@ spec: - name: name value: init - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:08e18a4dc5f947c1d20e8353a19d013144bea87b72f67236b165dd4778523951 + value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:ded314206f09712b2116deb050b774ae7efef9ab243794334c8e616871a3ffa5 - name: kind value: task resolver: bundles @@ -194,7 +194,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:ce5f2485d759221444357fe38276be876fc54531651e50dcfc0f84b34909d760 + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:cc4d9b276a7ad95f1783bfa572e220b7e1f554b901aaeb0e1739ebe68eeb7c63 - name: kind value: task resolver: bundles @@ -238,7 +238,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:7782cb7462130de8e8839a58dd15ed78e50938d718b51375267679c6044b4367 + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:1cb48a2fcd1b06a60b5a79e9157122f21903dec89782c702014f76717a0bbbb5 - name: kind value: task resolver: bundles @@ -270,7 +270,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:72f77a8c62f9d6f69ab5c35170839e4b190026e6cc3d7d4ceafa7033fc30ad7b + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:3bf6e4e83f911066430041534a69eec51dbd0f52f34a9bf41c6f3a24ec2ffb22 - name: kind value: task resolver: bundles @@ -292,7 +292,7 @@ spec: - name: name value: source-build - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.3@sha256:96ed9431854ecf9805407dca77b063abdf7aba1b3b9d1925a5c6145c6b7e95fd + value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.3@sha256:dbb10650431dad739c1386b8eb4552b552ec1ce277bc75d69130051f91918fb9 - name: kind value: task resolver: bundles @@ -460,7 +460,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.3@sha256:cce2dfcc5bd6e91ee54aacdadad523b013eeae5cdaa7f6a4624b8cbcc040f439 + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.3@sha256:b0bd59748cda4a7abf311e4f448e6c1d00c6b6d8c0ecc1c2eb33e08dc0e0b802 - name: kind value: task resolver: bundles @@ -482,7 +482,7 @@ spec: - name: name value: apply-tags - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.2@sha256:70881c97a4c51ee1f4d023fa1110e0bdfcfd2f51d9a261fa543c3862b9a4eee9 + value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.2@sha256:e0de426d492e195f59c99d2ea1ca0df7bfb8c689f5d1468fe7f70eb8684b8d02 - name: kind value: task resolver: bundles @@ -503,7 +503,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:d5cb22a833be51dd72a872cac8bfbe149e8ad34da7cb48a643a1e613447a1f9d + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:59c1489aaa982e636ef675b053ca729f539cc504ff58c54a0f962795698b8732 - name: kind value: task resolver: bundles diff --git a/.tekton/image-builder-frontend-push.yaml b/.tekton/image-builder-frontend-push.yaml index ff7ad971..02f10310 100644 --- a/.tekton/image-builder-frontend-push.yaml +++ b/.tekton/image-builder-frontend-push.yaml @@ -149,7 +149,7 @@ spec: - name: name value: init - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:08e18a4dc5f947c1d20e8353a19d013144bea87b72f67236b165dd4778523951 + value: quay.io/konflux-ci/tekton-catalog/task-init:0.2@sha256:ded314206f09712b2116deb050b774ae7efef9ab243794334c8e616871a3ffa5 - name: kind value: task resolver: bundles @@ -191,7 +191,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:ce5f2485d759221444357fe38276be876fc54531651e50dcfc0f84b34909d760 + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.2@sha256:cc4d9b276a7ad95f1783bfa572e220b7e1f554b901aaeb0e1739ebe68eeb7c63 - name: kind value: task resolver: bundles @@ -235,7 +235,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:7782cb7462130de8e8839a58dd15ed78e50938d718b51375267679c6044b4367 + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.4@sha256:1cb48a2fcd1b06a60b5a79e9157122f21903dec89782c702014f76717a0bbbb5 - name: kind value: task resolver: bundles @@ -267,7 +267,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:72f77a8c62f9d6f69ab5c35170839e4b190026e6cc3d7d4ceafa7033fc30ad7b + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:3bf6e4e83f911066430041534a69eec51dbd0f52f34a9bf41c6f3a24ec2ffb22 - name: kind value: task resolver: bundles @@ -289,7 +289,7 @@ spec: - name: name value: source-build - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.3@sha256:96ed9431854ecf9805407dca77b063abdf7aba1b3b9d1925a5c6145c6b7e95fd + value: quay.io/konflux-ci/tekton-catalog/task-source-build:0.3@sha256:dbb10650431dad739c1386b8eb4552b552ec1ce277bc75d69130051f91918fb9 - name: kind value: task resolver: bundles @@ -457,7 +457,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.3@sha256:cce2dfcc5bd6e91ee54aacdadad523b013eeae5cdaa7f6a4624b8cbcc040f439 + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.3@sha256:b0bd59748cda4a7abf311e4f448e6c1d00c6b6d8c0ecc1c2eb33e08dc0e0b802 - name: kind value: task resolver: bundles @@ -479,7 +479,7 @@ spec: - name: name value: apply-tags - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.2@sha256:70881c97a4c51ee1f4d023fa1110e0bdfcfd2f51d9a261fa543c3862b9a4eee9 + value: quay.io/konflux-ci/tekton-catalog/task-apply-tags:0.2@sha256:e0de426d492e195f59c99d2ea1ca0df7bfb8c689f5d1468fe7f70eb8684b8d02 - name: kind value: task resolver: bundles @@ -500,7 +500,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:d5cb22a833be51dd72a872cac8bfbe149e8ad34da7cb48a643a1e613447a1f9d + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:59c1489aaa982e636ef675b053ca729f539cc504ff58c54a0f962795698b8732 - name: kind value: task resolver: bundles