A mirror of my website's source code.

Build to Public Directory for GitLab Pages

I think the problem here is that I'm using a directory that cannot be changed due to .gitignore

by steve0greatness, Monday, 6 May 2024, 03:35:48 (1714966548), pushed by steve0greatness, Monday, 6 May 2024, 03:46:51 (1714967211)

Author identity: Steve0Greatness <steve0greatnessiscool@gmail.com>

bae87a3536d9ed7ba7cc1da4b5049b4e0adb9f5a

.gitlab-ci.yml

@@ -1,12 +1,14 @@

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            image: python:latest
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        before_script:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          - python -m pip install -r requirements.txt
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            pages:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          stage: deploy
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                              script:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - python3 -m pip install -r requirements.txt
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - python3 build.py gh-pages-deploy
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - python build.py gl-pages-deploy
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                              artifacts:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                paths:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              - build
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          only:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - main
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              - public
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          rules:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

build.py

@@ -10,11 +10,14 @@ from yaml import safe_load as LoadYML

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from re import sub as RegReplace
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            from typing import Literal
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        GITHUB_BUILD_DIR = "build" # Separate because this site is built with an action that won't work if they aren't
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        DEPLOY_BUILD_DIR = {
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "gh-pages-deploy": "build",
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            "gl-pages-deploy": "public"
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        } # Separate because this site is built with an action that won't work if they aren't
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            LOCAL_BUILD_DIR = "build"
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        IS_GH_ACTIONS = len(argv) > 1 and argv[1] == "gh-pages-deploy"
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        BUILD_DIRECTORY = GITHUB_BUILD_DIR if IS_GH_ACTIONS else LOCAL_BUILD_DIR
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        PAGES_DEPLOY = argv[1] if len(argv) > 1 else None
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        BUILD_DIRECTORY = DEPLOY_BUILD_DIR[PAGES_DEPLOY] if PAGES_DEPLOY is not None else LOCAL_BUILD_DIR
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            PAGES = {
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                "index.html": "index.html",
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -76,7 +79,7 @@ def PostSortHelper(Post):

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            def GetBlogList():
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                print("Grabbing post list")
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                PostSlugs: tuple[tuple[Literal["blog-posts", "drafts"], str], ...] = tuple( ("blog-posts", file) for file in ListDirectory("blog-posts") )
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            if not IS_GH_ACTIONS and PathExists("drafts"):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            if not PAGES_DEPLOY and PathExists("drafts"):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    PostSlugs = PostSlugs + tuple( ("drafts", file) for file in ListDirectory("drafts") )
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                Posts = []
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                for dir, slug in PostSlugs: