Skip to content

Commit 1dba957

Browse files
committed
RC1 initial release 0.1.0
For Ticket #1 All 69 tests pass
1 parent 9eae246 commit 1dba957

19 files changed

Lines changed: 2729 additions & 0 deletions

.gitattributes

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# .gitattributes
2+
#
3+
# Line ending policy for delphi-compiler-versions
4+
# note to self
5+
# git add --renormalize .
6+
# git commit -m "chore: enforce CRLF for .inc via .gitattributes"
7+
#
8+
# Default: LF for all text files. Explicit overrides below for file types
9+
# that must be CRLF on Windows regardless of the platform running CI.
10+
11+
# Catch-all: normalise all text files to LF in the repo
12+
* text eol=lf
13+
14+
# Delphi source files should always be CRLF
15+
*.inc text eol=crlf
16+
*.pas text eol=crlf
17+
18+
# PowerShell scripts must be CRLF. PowerShell on Windows writes CRLF by
19+
# default; keeping scripts CRLF avoids spurious diffs when Windows devs
20+
# edit files that were last touched by the ubuntu-slim CI runner (which
21+
# writes LF). Prevent ubuntu workflows from producing LF
22+
*.ps1 text eol=crlf
23+
*.psm1 text eol=crlf
24+
*.psd1 text eol=crlf
25+
26+
# Batch files must be CRLF
27+
*.bat text eol=crlf
28+
*.cmd text eol=crlf
29+
30+
# JSON, YAML, Markdown, and shell scripts: LF only.
31+
*.json text eol=lf
32+
*.yml text eol=lf
33+
*.yaml text eol=lf
34+
*.md text eol=lf
35+
*.sh text eol=lf
36+
37+
# Binary files: no line ending conversion.
38+
*.png binary
39+
*.jpg binary
40+
*.zip binary

.github/RELEASE_TEMPLATE.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
![delphi-dccbuild logo](https://continuous-delphi.github.io/assets/logos/delphi-dccbuild-480x270.png)
2+
3+
[https://github.com/continuous-delphi/delphi-dccbuild](https://github.com/continuous-delphi/delphi-dccbuild)
4+
**Tag:** `vX.Y.Z`
5+
6+
**Direct download:** [delphi-dccbuild.ps1](https://github.com/continuous-delphi/delphi-dccbuild/releases/download/vX.Y.Z/delphi-dccbuild.ps1)
7+
8+
This release improves `delphi-dccbuild`, a Continuous Delphi utility that builds
9+
Delphi `.dproj` projects using DCC compilers from the command line. It sources
10+
`rsvars.bat` before invoking and is designed to accept piped output
11+
from `delphi-inspect -DetectLatest -BuildSystem MSBuild`.
12+
13+
---

.github/workflows/ci.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- "**"
10+
workflow_dispatch:
11+
12+
concurrency:
13+
group: tests-${{ github.event.pull_request.number || github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
pwsh-tests:
18+
name: PowerShell tests
19+
runs-on: ubuntu-latest
20+
permissions:
21+
contents: read
22+
23+
steps:
24+
- name: Checkout repository
25+
uses: actions/checkout@v4
26+
27+
- name: Install Pester and PSScriptAnalyzer
28+
run: |
29+
pwsh -Command "Install-Module Pester -MinimumVersion 5.7.0 -Force -Scope CurrentUser"
30+
pwsh -Command "Install-Module PSScriptAnalyzer -Force -Scope CurrentUser"
31+
32+
- name: Run PowerShell test suite
33+
shell: pwsh
34+
env:
35+
TERM: dumb
36+
NO_COLOR: "1"
37+
run: |
38+
$PSStyle.OutputRendering = 'PlainText'
39+
./tests/run-tests.ps1
40+
41+
- name: Upload Pester results
42+
if: always()
43+
uses: actions/upload-artifact@v4
44+
with:
45+
name: pester-results
46+
path: tests/pwsh/results/pester-results.xml
47+
if-no-files-found: warn
48+
retention-days: 7

.github/workflows/release.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
concurrency:
9+
group: tests-refs/heads/${{ github.event.repository.default_branch }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
18+
steps:
19+
# Tag validation runs before checkout -- no workspace is needed for this check.
20+
# The glob above is intentionally loose; this step is the authoritative gate.
21+
- name: Validate tag format
22+
shell: bash
23+
run: |
24+
if [[ ! "${GITHUB_REF_NAME}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
25+
echo "Tag '${GITHUB_REF_NAME}' does not match required format vX.Y.Z"
26+
exit 1
27+
fi
28+
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 0
33+
34+
- name: Install Pester and PSScriptAnalyzer
35+
run: |
36+
pwsh -Command "Install-Module Pester -MinimumVersion 5.7.0 -Force -Scope CurrentUser"
37+
pwsh -Command "Install-Module PSScriptAnalyzer -Force -Scope CurrentUser"
38+
39+
- name: Run tests
40+
shell: pwsh
41+
env:
42+
TERM: dumb
43+
NO_COLOR: "1"
44+
run: |
45+
$PSStyle.OutputRendering = 'PlainText'
46+
./tests/run-tests.ps1
47+
48+
- name: Extract version from tag
49+
shell: bash
50+
run: |
51+
VERSION="${GITHUB_REF_NAME#v}"
52+
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
53+
54+
- name: Populate release notes
55+
shell: bash
56+
run: |
57+
if [[ ! -f .github/RELEASE_TEMPLATE.md ]]; then
58+
echo "ERROR: Missing .github/RELEASE_TEMPLATE.md"
59+
exit 1
60+
fi
61+
62+
CHANGELOG_SECTION=$(awk '/^## \['"${VERSION}"'\]/{found=1; next} /^## \[/{if(found) exit} found' CHANGELOG.md)
63+
64+
if [[ -z "${CHANGELOG_SECTION}" ]]; then
65+
echo "ERROR: No entry for version ${VERSION} found in CHANGELOG.md"
66+
exit 1
67+
fi
68+
69+
sed "s/vX\.Y\.Z/v${VERSION}/g; s/X\.Y\.Z/${VERSION}/g" \
70+
.github/RELEASE_TEMPLATE.md > release-notes.md
71+
72+
printf '\n---\n\n# Change Log\n\n%s\n' "${CHANGELOG_SECTION}" >> release-notes.md
73+
74+
- name: Create GitHub release
75+
env:
76+
GH_TOKEN: ${{ github.token }}
77+
run: |
78+
REPO_NAME="${GITHUB_REPOSITORY##*/}"
79+
gh release create "${GITHUB_REF_NAME}" \
80+
--title "${REPO_NAME} v${VERSION}" \
81+
--notes-file release-notes.md \
82+
source/delphi-dccbuild.ps1

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# PowerShell test output
2+
tests/pwsh/results/*.xml

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
---
6+
7+
## [0.1.0] - 2026-03-16
8+
9+
- RC1 release of `delphi-dccbuild.ps1`
10+
11+
---
12+
13+
<br />
14+
<br />
15+
16+
## `delphi-dccbuild` - a developer tool from Continuous Delphi
17+
18+
![continuous-delphi logo](https://continuous-delphi.github.io/assets/logos/continuous-delphi-480x270.png)
19+
20+
https://github.com/continuous-delphi

0 commit comments

Comments
 (0)