Basix/.github/workflows/convert-schemes.yaml
dependabot[bot] 44ebb4fc64
build(deps): bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-14 08:36:54 +00:00

88 lines
2.8 KiB
YAML

name: Convert YAML to JSON
on:
workflow_dispatch:
schedule:
- cron: "0 3 * * sat" # every saturday at 3AM
jobs:
nix:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: "Checkout"
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: "Install nix"
uses: cachix/install-nix-action@master
with:
install_url: https://nixos.org/nix/install
extra_nix_config: |
experimental-features = nix-command flakes
allow-import-from-derivation = false
- name: Run conversion script
run: |
tmpdir=$(mktemp -d)
if [ -d "$tmpdir" ]; then
echo "Cloning original schemes directory"
git clone https://github.com/tinted-theming/schemes.git "$tmpdir"/yaml
else
echo "Failed to create temp directory" >&2
exit 1
fi
yaml_dir_base16="$tmpdir"/yaml/base16
yaml_dir_base24="$tmpdir"/yaml/base24
json_dir_base16="$tmpdir"/json/base16
json_dir_base24="$tmpdir"/json/base24
# ensure JSON directories exist
mkdir -p "$json_dir_base16"
mkdir -p "$json_dir_base24"
# convert YAML to JSON
convert_yaml_to_json() {
echo "Converting"
local yaml_file="$1"
local json_file="$2"
nix run --builders "" --substituters "https://cache.nixos.org" .#convert-scheme -- "$yaml_file" "$json_file"
}
# convert YAML files in base16 directory
for yaml_file in "$yaml_dir_base16"/*.yaml; do
base_name=$(basename "$yaml_file" .yaml)
convert_yaml_to_json "$yaml_file" "$json_dir_base16/$base_name.json"
done
# convert YAML files in base24 directory
for yaml_file in "$yaml_dir_base24"/*.yaml; do
base_name=$(basename "$yaml_file" .yaml)
convert_yaml_to_json "$yaml_file" "$json_dir_base24/$base_name.json"
done
# move converted JSON files to current directory
mkdir -p json/{base16,base24}
mv "$json_dir_base16"/*.json json/base16
mv "$json_dir_base24"/*.json json/base24
# Cleanup
rm -rf "$tmpdir"
- name: Commit files
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add *.json
git commit -m "CI: update JSON schemes" || echo "No changes to commit"
- name: Push changes
if: success()
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}