From 00e1c9195ce426ede16c6851cf8096640c50c672 Mon Sep 17 00:00:00 2001 From: Mikhail Kornilovich Date: Mon, 6 Apr 2026 19:50:16 +0300 Subject: [PATCH] add sources, add visx to release flow --- .gitea/workflows/release.yml | 15 ++++++- dsl/ast.go | 1 + dsl/parser.go | 11 +++++ editor/.DS_Store | Bin 6148 -> 0 bytes .../vscode-jdg/syntaxes/jdg.tmLanguage.json | 2 +- runner/runner.go | 39 ++++++++++++++++++ 6 files changed, 65 insertions(+), 3 deletions(-) delete mode 100644 editor/.DS_Store diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 03298ec..8186998 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -18,14 +18,24 @@ jobs: with: go-version: '1.22' + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + - name: Cross-compile shell: bash run: | - tag="${GITHUB_REF#refs/tags/}" mkdir -p dist CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o "dist/judge-linux-amd64" ./cmd/cli CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o "dist/judge-windows-amd64.exe" ./cmd/cli - ls -la dist/ + + - name: Build VS Code extension + shell: bash + run: | + npm install -g @vscode/vsce + cd editor/vscode-jdg + vsce package -o "../../dist/jdg-language-${{ github.ref_name }}.vsix" - name: Create release uses: https://gitea.com/actions/gitea-release-action@main @@ -33,5 +43,6 @@ jobs: files: |- dist/judge-linux-amd64 dist/judge-windows-amd64.exe + dist/jdg-language-${{ github.ref_name }}.vsix api_key: ${{ secrets.RELEASE_TOKEN }} title: ${{ github.ref_name }} diff --git a/dsl/ast.go b/dsl/ast.go index a877c13..1d1ccbd 100644 --- a/dsl/ast.go +++ b/dsl/ast.go @@ -9,6 +9,7 @@ type File struct { BuildDarwin string Timeout time.Duration Binary string // executable name produced by build (default: solution) + Sources string // glob pattern for source files, expanded as $SOURCES in build NormalizeCRLF bool // strip \r before matching stdout/stderr/outFiles TrimTrailingWS bool // trim trailing whitespace on each line before matching diff --git a/dsl/parser.go b/dsl/parser.go index 3e717ae..d379296 100644 --- a/dsl/parser.go +++ b/dsl/parser.go @@ -128,6 +128,17 @@ func (p *Parser) parseFile() (*File, error) { } f.Binary = s.Value + case "sources": + p.advance() + if _, err := p.expect(TOKEN_ASSIGN); err != nil { + return nil, err + } + s, err := p.expect(TOKEN_STRING) + if err != nil { + return nil, err + } + f.Sources = s.Value + case "normalize_crlf": p.advance() if _, err := p.expect(TOKEN_ASSIGN); err != nil { diff --git a/editor/.DS_Store b/editor/.DS_Store deleted file mode 100644 index 05bb5d75e6e4bb489dccf391e4f364fed9f0b126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5T0$TO)WwX3OxqAR;;#E#7l_v1&ruHr8cH$G-gZFpF=6+tS{t~_&m<+ zZVILK;6=pF!0b0WKUwzMWj6}|!W{*N02KhRPziG-Y*q-xNtYyNJcL4hBY+<4!!rc% zxRlL~zsLZs-4=`?fd`PdZu9l?CrRIrq>u3rzaNFkuwMTZxqM+`vuG8qvUTS@$%!}Y z4o8XG9o$gwQp(8B?5=+m_9mUm&Y6sd-7xMAR6!W@Fy;0-i~~7wl^HV=&dIjt*?-_mScSLK3v; zEkS4-bPT2%F@hp=DWWbF=7}M6Ir?pr=NL>i>T(cjWc-d9S(q1!P@|*YR_P!djodN= z%)lZ8dEKqh{eS-b`+u>Bd&~ec@UIvUg|^praZ2WHU78%-wKnQKDhcJK8s{ZwsH+%r e=_; 0 { var cancel context.CancelFunc