mirror of
https://github.com/ryankazokas/turbovault-app.git
synced 2026-04-17 07:52:53 +00:00
Compare commits
6 Commits
f639758bcb
...
v1.0.5
| Author | SHA1 | Date | |
|---|---|---|---|
| aa9edb0f65 | |||
| 454f706876 | |||
| 7c29e7789f | |||
| c00fdbdf2e | |||
| b1661a37d5 | |||
| d0c15dae86 |
22
.github/workflows/build-and-deploy.yml
vendored
22
.github/workflows/build-and-deploy.yml
vendored
@@ -36,7 +36,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GHCR_TOKEN }}
|
||||||
|
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
@@ -67,6 +67,26 @@ jobs:
|
|||||||
echo "$KUBECONFIG_CONTENT" | base64 -d > ~/.kube/config
|
echo "$KUBECONFIG_CONTENT" | base64 -d > ~/.kube/config
|
||||||
chmod 600 ~/.kube/config
|
chmod 600 ~/.kube/config
|
||||||
|
|
||||||
|
- name: Run database migrations
|
||||||
|
run: |
|
||||||
|
echo "🗄️ Running database migrations..."
|
||||||
|
|
||||||
|
# Delete old migration job if it exists
|
||||||
|
kubectl delete job turbovault-migrate -n turbovault --ignore-not-found=true
|
||||||
|
|
||||||
|
# Update the migration job with the new image version
|
||||||
|
sed "s|image: ghcr.io/ryankazokas/turbovault-app:.*|image: ghcr.io/ryankazokas/turbovault-app:${{ steps.version.outputs.tag }}|" \
|
||||||
|
k8s/migrate-job.yaml | kubectl apply -f -
|
||||||
|
|
||||||
|
# Wait for migration to complete
|
||||||
|
echo "⏳ Waiting for migrations to complete..."
|
||||||
|
kubectl wait --for=condition=complete --timeout=5m job/turbovault-migrate -n turbovault
|
||||||
|
|
||||||
|
echo "✅ Migrations complete!"
|
||||||
|
echo ""
|
||||||
|
echo "📋 Migration logs:"
|
||||||
|
kubectl logs job/turbovault-migrate -n turbovault
|
||||||
|
|
||||||
- name: Deploy to Kubernetes
|
- name: Deploy to Kubernetes
|
||||||
run: |
|
run: |
|
||||||
echo "🚀 Deploying version ${{ steps.version.outputs.tag }} to Kubernetes..."
|
echo "🚀 Deploying version ${{ steps.version.outputs.tag }} to Kubernetes..."
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
<div class="max-w-4xl mx-auto text-center py-16">
|
<div class="max-w-4xl mx-auto text-center py-16">
|
||||||
<h1 class="text-5xl font-bold text-gray-900 mb-6">Welcome to TurboVault</h1>
|
<h1 class="text-5xl font-bold text-gray-900 mb-6">Welcome to TurboVault</h1>
|
||||||
<p class="text-xl text-gray-600 mb-8">Track and manage your video game collection with ease (Test Deployment v1.0.1)</p>
|
<p class="text-xl text-gray-600 mb-8">Track and manage your video game collection with ease.</p>
|
||||||
|
|
||||||
<div class="space-x-4">
|
<div class="space-x-4">
|
||||||
<%= link_to "Get Started", signup_path, class: "px-8 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 text-lg font-semibold" %>
|
<%= link_to "Get Started",
|
||||||
<%= link_to "Login", login_path, class: "px-8 py-3 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300 text-lg font-semibold" %>
|
signup_path,
|
||||||
|
class:
|
||||||
|
"px-8 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 text-lg font-semibold" %>
|
||||||
|
<%= link_to "Login",
|
||||||
|
login_path,
|
||||||
|
class:
|
||||||
|
"px-8 py-3 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300 text-lg font-semibold" %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-16 grid grid-cols-1 md:grid-cols-3 gap-8">
|
<div class="mt-16 grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||||
|
|||||||
54
db/migrate/20260413005433_seed_platforms.rb
Normal file
54
db/migrate/20260413005433_seed_platforms.rb
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
class SeedPlatforms < ActiveRecord::Migration[8.1]
|
||||||
|
def up
|
||||||
|
platforms = [
|
||||||
|
# Nintendo
|
||||||
|
{ name: "Nintendo Entertainment System", abbreviation: "NES", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Super Nintendo Entertainment System", abbreviation: "SNES", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo 64", abbreviation: "N64", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo GameCube", abbreviation: "GCN", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo Wii", abbreviation: "Wii", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo Wii U", abbreviation: "Wii U", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo Switch", abbreviation: "Switch", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Game Boy", abbreviation: "GB", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Game Boy Color", abbreviation: "GBC", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Game Boy Advance", abbreviation: "GBA", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo DS", abbreviation: "NDS", manufacturer: "Nintendo" },
|
||||||
|
{ name: "Nintendo 3DS", abbreviation: "3DS", manufacturer: "Nintendo" },
|
||||||
|
|
||||||
|
# Sony
|
||||||
|
{ name: "PlayStation", abbreviation: "PS1", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation 2", abbreviation: "PS2", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation 3", abbreviation: "PS3", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation 4", abbreviation: "PS4", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation 5", abbreviation: "PS5", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation Portable", abbreviation: "PSP", manufacturer: "Sony" },
|
||||||
|
{ name: "PlayStation Vita", abbreviation: "Vita", manufacturer: "Sony" },
|
||||||
|
|
||||||
|
# Microsoft
|
||||||
|
{ name: "Xbox", abbreviation: "Xbox", manufacturer: "Microsoft" },
|
||||||
|
{ name: "Xbox 360", abbreviation: "X360", manufacturer: "Microsoft" },
|
||||||
|
{ name: "Xbox One", abbreviation: "XB1", manufacturer: "Microsoft" },
|
||||||
|
{ name: "Xbox Series X/S", abbreviation: "XSX", manufacturer: "Microsoft" },
|
||||||
|
|
||||||
|
# Sega
|
||||||
|
{ name: "Sega Genesis", abbreviation: "Genesis", manufacturer: "Sega" },
|
||||||
|
{ name: "Sega Saturn", abbreviation: "Saturn", manufacturer: "Sega" },
|
||||||
|
{ name: "Sega Dreamcast", abbreviation: "DC", manufacturer: "Sega" },
|
||||||
|
{ name: "Sega Game Gear", abbreviation: "GG", manufacturer: "Sega" },
|
||||||
|
|
||||||
|
# PC
|
||||||
|
{ name: "PC", abbreviation: "PC", manufacturer: nil },
|
||||||
|
|
||||||
|
# Other
|
||||||
|
{ name: "Atari 2600", abbreviation: "2600", manufacturer: "Atari" }
|
||||||
|
]
|
||||||
|
|
||||||
|
platforms.each do |platform|
|
||||||
|
Platform.create!(platform)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
Platform.delete_all
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user