feat: implement Live/Remix filtering and add CI/CD pipeline
Some checks failed
Build and Push Docker Image / build (pull_request) Failing after 38s
Some checks failed
Build and Push Docker Image / build (pull_request) Failing after 38s
This commit includes: 1. Live/Remix Filtering Feature: - Added ignore_live and ignore_remix columns to artist_settings table (migration 010) - Updated ArtistSettings struct with IgnoreLive and IgnoreRemix fields - Modified SaveArtistSettings and UpdateArtistSettings to handle new fields - Extended FilterOptions struct with IgnoreLive and IgnoreRemix - Updated ApplyTypeToggles and ApplyTypeTogglesToReleaseGroups to filter Live/Remix types - Added toggleIgnoreLive and toggleIgnoreRemix handlers in web layer - Updated ArtistData view model and artist.html template with new toggle UI - Comprehensive test coverage for all new functionality 2. CI/CD Pipeline with Gitea Actions: - Added .gitea/workflows/docker-build.yml for automated Docker builds - Workflow triggers on pushes to main/master and tags, plus PRs - Runs Go tests before building - Builds and pushes multi-architecture Docker images to gitea.mrixs.me - Includes caching for faster subsequent builds - Proper tagging strategy (branch, semver, SHA) - CI-CD-GUIDE.md documentation 3. Cleanup: - Removed temporary build artifacts and coverage files
This commit is contained in:
@@ -364,10 +364,10 @@ func TestFilterConsistency_AcrossCacheStates(t *testing.T) {
|
||||
|
||||
// Seed artist settings with IgnoreSingles enabled
|
||||
if err := database.SaveArtistSettings(db, &database.ArtistSettings{
|
||||
ID: "artist-1",
|
||||
Name: "Test Artist",
|
||||
Monitored: true,
|
||||
IgnoreSingles: true, // This is the key toggle we're testing
|
||||
ID: "artist-1",
|
||||
Name: "Test Artist",
|
||||
Monitored: true,
|
||||
IgnoreSingles: true, // This is the key toggle we're testing
|
||||
IgnoreCompilations: false,
|
||||
}); err != nil {
|
||||
t.Fatalf("SaveArtistSettings error: %v", err)
|
||||
@@ -427,7 +427,7 @@ func TestFilterConsistency_AcrossCacheStates(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("GetArtistSettings error: %v", err)
|
||||
}
|
||||
filter := TypeFilter{
|
||||
filter := musicbrainz.FilterOptions{
|
||||
IgnoreSingles: settings.IgnoreSingles,
|
||||
IgnoreCompilations: settings.IgnoreCompilations,
|
||||
}
|
||||
@@ -436,7 +436,7 @@ func TestFilterConsistency_AcrossCacheStates(t *testing.T) {
|
||||
var isSuppressed bool
|
||||
for _, ext := range externalReleases {
|
||||
if ext.RGID == "rg-ep-release" {
|
||||
isSuppressed = filter.suppressed(ext)
|
||||
isSuppressed = FilterIsSuppressed(filter, ext)
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -455,4 +455,4 @@ func TestFilterConsistency_AcrossCacheStates(t *testing.T) {
|
||||
//
|
||||
// Since all three paths ultimately use the same filtering function with the same
|
||||
// inputs, they must produce identical results.
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user