name: Generate Website on: workflow_dispatch: push: branches: - master env: USER_TOKEN: ${{ secrets.TOKEN }} USER_NAME: ${{ vars.USER }} jobs: build: name: Generate Website runs-on: docker container: image: alpine strategy: matrix: toolchain: - stable steps: - name: Install packages run: apk add --no-cache nodejs git git-lfs bash curl zstd - name: Checkout repository uses: actions/checkout@v4 - name: Checkout repository (suo) uses: actions/checkout@v4 with: token: ${{ secrets.TOKEN }} repository: sapphirus.org/Suo sparse-checkout: | templates/assets dist lfs: true show-progress: true path: suo - name: Fetch suo binary shell: bash run: | POST_URL=https://git.sapphirus.org/api/packages/private/generic/suo/latest/suo echo "::group:: Fetching suo" mkdir ./bin/ && curl --user $USER_NAME:$USER_TOKEN $POST_URL --output ./bin/suo && chmod +x ./bin/suo echo "::endgroup::" - name: Generate website run: ./bin/suo && ./suo/dist/assets.sh ./output ./suo - name: Package website shell: bash run: | echo "::group:: Packaging website" cd output tar acvf website.tar.zst * echo "$(git rev-parse --short HEAD)$(git -C ../suo rev-parse --short HEAD)" > website.ver echo "::endgroup::" - name: Upload package shell: bash run: | POST_URL=https://git.sapphirus.org/api/packages/private/generic/website/latest/ SRC_DIR="./output/" FILES=$(ls $SRC_DIR*.tar.zst $SRC_DIR*.ver) for file in $FILES; do echo "::group:: Removing $file" curl --user $USER_NAME:$USER_TOKEN -X DELETE $POST_URL${file##$SRC_DIR} echo -e "\n::endgroup::" done for file in $FILES; do echo "::group:: Publishing $file" curl --user $USER_NAME:$USER_TOKEN --upload-file $file $POST_URL${file##$SRC_DIR} echo -e "\n::endgroup::" done