name: Citation Style Test on: push: branches: [ main, develop ] paths: - '01_manuscript/**' - 'scripts/shell/**' - 'config/**' - 'shared/**' - 'scripts/installation/requirements/**' - '.github/workflows/citation-style-test.yml' pull_request: branches: [ main, develop ] paths: - '01_manuscript/**' - 'scripts/shell/**' - 'config/**' - 'shared/**' - 'scripts/installation/requirements/**' - '.github/workflows/citation-style-test.yml' # Cancel in-progress runs when a new workflow with the same group name is triggered concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test-citation-styles: runs-on: ubuntu-latest strategy: matrix: style: - name: "Vancouver" value: "unsrtnat" - name: "IEEE" value: "IEEEtran" - name: "Nature" value: "naturemag" - name: "APA-like" value: "apalike" steps: - uses: actions/checkout@v4 - name: Cache pip dependencies uses: actions/cache@v4 with: path: ~/.cache/pip key: pip-${{ runner.os }}-xlsx2csv-csv2latex restore-keys: | pip-${{ runner.os }}- - name: Install dependencies run: | sudo apt-get update # Install core LaTeX packages (not full to save time) xargs sudo apt-get install -y < scripts/installation/requirements/system-debian.txt # Install yq (Go version) sudo wget -qO /usr/local/bin/yq \ https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 sudo chmod +x /usr/local/bin/yq # Install Python dependencies python3 -m pip install --upgrade pip pip install xlsx2csv csv2latex bibtexparser - name: Set citation style - ${{ matrix.style.name }} run: | echo "Testing citation style: ${{ matrix.style.name }} (${{ matrix.style.value }})" # Update config file with new citation style using yq wrapper ./scripts/shell/modules/yq_wrapper.sh set config/config_manuscript.yaml '.citation.style' "${{ matrix.style.value }}" # Verify the change echo "Current style in config:" ./scripts/shell/modules/yq_wrapper.sh get config/config_manuscript.yaml '.citation.style' - name: Compile manuscript with ${{ matrix.style.name }} style run: ./compile.sh manuscript - name: Verify citation style was applied run: | echo "Checking bibliography.tex for active style:" grep '^\bibliographystyle' shared/latex_styles/bibliography.tex || echo "No active style found" - name: Upload PDF with ${{ matrix.style.name }} style uses: actions/upload-artifact@v4 if: success() with: name: manuscript-${{ matrix.style.name }} path: 01_manuscript/manuscript.pdf retention-days: 30 - name: Upload compilation log uses: actions/upload-artifact@v4 if: always() with: name: compilation-log-${{ matrix.style.name }} path: 01_manuscript/logs/global.log retention-days: 7 compare-results: needs: test-citation-styles runs-on: ubuntu-latest if: success() steps: - name: Download all artifacts uses: actions/download-artifact@v4 - name: List generated PDFs run: | echo "=== Citation Style Test Results ===" echo "Successfully compiled manuscripts with the following citation styles:" ls -lh manuscript-*/manuscript.pdf echo "" echo "All citation styles compiled successfully!" echo "PDFs are available in the artifacts section above."