File tree 5 files changed +48
-30
lines changed
5 files changed +48
-30
lines changed Original file line number Diff line number Diff line change 70
70
aws s3 cp s3://adacore-gha-tray-eu-west-1/toolchain/aarch64-Linux-gmp-6.2.1.tar.bz2 . --sse=AES256
71
71
sudo tar xjf aarch64-Linux-gcc-14.2.tar.bz2 -C /
72
72
sudo tar xjf aarch64-Linux-gmp-6.2.1.tar.bz2 -C /
73
+ - name : Fetch dependency commits numbers
74
+ shell : bash
75
+ if : ${{ env.TAG != env.DEFAULT_TAG }}
76
+ run : |
77
+ # For tags `actions/checkout@v2` action fetches a tag's commit, but
78
+ # not the tag annotation itself. Let's refetch the tag from origin.
79
+ # This makes `git show --no-patch --format=%n $TAG` work again.
80
+ git tag --delete $TAG
81
+ git fetch --tags
82
+ git show --no-patch --format=%n $TAG > deps.txt
73
83
- name : Build
74
84
shell : bash
75
85
run : |
@@ -100,7 +110,6 @@ jobs:
100
110
path : |
101
111
integration/vscode/ada/arm*
102
112
integration/vscode/ada/x64*
103
- commits.txt
104
113
- name : Upload release
105
114
shell : bash
106
115
if : ${{ env.TAG != env.DEFAULT_TAG }}
Original file line number Diff line number Diff line change 19
19
NAME=${NODE_ARCH_PLATFORM%/* } -${NODE_ARCH_PLATFORM#*/ }
20
20
fi
21
21
22
- # For tags `actions/checkout@v2` action fetches a tag's commit, but
23
- # not the tag annotation itself. Let's refetch the tag from origin.
24
- # This makes `git show --no-patch --format=%n $TAG` work again.
25
- git tag --delete " $TAG "
26
- git fetch --tags
27
-
28
22
function release_notes() {
29
23
echo " # Release notes"
30
24
31
25
# Select the content of the first section of CHANGELOG.md
32
- sed -n -e ' /^## \\<next>/,/^##/p' < CHANGELOG.md | tail -n +2 | head -n -1
33
-
34
- COMMITS=commits.txt
35
-
36
- if [ -f " $COMMITS " ]; then
37
- {
38
- echo " # Dependency commits"
39
- echo " "
40
- cat " $COMMITS "
41
- echo " "
42
- }
43
- fi
26
+ sed -n -e ' /^## \\<next>/,/^##/p' CHANGELOG.md | sed -e ' 1d;$d'
44
27
}
45
28
46
29
release_notes > release_notes.md
@@ -69,7 +52,7 @@ upload_url=$(curl \
69
52
echo " upload_url=$upload_url "
70
53
71
54
FILE=$NAME .tar.gz
72
- tar czvf " $FILE " " integration/vscode/ada/$NODE_ARCH_PLATFORM " commits.txt
55
+ tar czvf " $FILE " " integration/vscode/ada/$NODE_ARCH_PLATFORM "
73
56
74
57
# Upload $FILE as an asset to the release
75
58
curl \
Original file line number Diff line number Diff line change
1
+ # Building Ada Language Server from sources
2
+
3
+ 1 . Install Alire, Python 3, NodeJS. Add them to ` PATH ` .
4
+
5
+ 2 . Disable dependency sharing in Alire
6
+
7
+ alr settings --global --set dependencies.shared false
8
+
9
+ 3 . Clone repository
10
+
11
+ git clone https://github.com/AdaCore/ada_language_server.git
12
+ cd ada_language_server
13
+
14
+ 4 . If you know dependency commits numbers then create ` deps.txt ` file
15
+ with lines ` <repo_name>=commit ` . Otherwise checkout ` edge ` branch.
16
+
17
+ 5 . Build scripts installs Python modules. So it's better to activate
18
+ ` venv ` for Python:
19
+
20
+ python -m venv venv
21
+ source venv/bin/activate
22
+
23
+ 5 . Run ` build_als.sh ` script
24
+
25
+ ./scripts/build_als.sh
Original file line number Diff line number Diff line change 32
32
33
33
# Pins repo names (crate name by default)
34
34
35
- repo_adasat=AdaSAT
36
35
repo_gnatcoll=gnatcoll-core
37
36
repo_lal_refactor=lal-refactor
38
37
repo_langkit_support=langkit
@@ -72,21 +71,23 @@ function install_index() {
72
71
73
72
# Clone dependencies
74
73
function pin_crates() {
75
- echo " $( git rev-parse HEAD) ada_language_server" > commits.txt
76
-
77
74
for crate in $PINS ; do
78
75
repo_var=repo_$crate
79
76
branch_var=branch_$crate
80
77
81
78
repo=${! repo_var}
82
79
branch=${! branch_var}
80
+ commit=" "
81
+
82
+ if [ -f deps.txt ]; then
83
+ commit=$( grep " ^${repo:- $crate } =" deps.txt | sed -e ' s/.*=//' )
84
+ fi
83
85
84
86
URL=" https://github.com/AdaCore/${repo:- $crate } .git"
85
- GIT=" git clone --depth=1"
86
- [ -d " subprojects/$crate " ] ||
87
- $GIT -b " ${branch:- master} " " $URL " " subprojects/$crate "
88
- commit=$( git -C " subprojects/$crate " rev-parse HEAD)
89
- echo " $commit $crate " >> commits.txt
87
+ if [ ! -d " subprojects/$crate " ]; then
88
+ git clone " $URL " " subprojects/$crate "
89
+ git -C " subprojects/$crate " checkout " ${commit:- ${branch:- master} } "
90
+ fi
90
91
cp -v " subprojects/$crate " .toml " subprojects/$crate /alire.toml"
91
92
alr --force --non-interactive pin " $crate " " --use=$PWD /subprojects/$crate "
92
93
done
Original file line number Diff line number Diff line change @@ -22,10 +22,10 @@ prepend = "${CRATE_ROOT}/core:${CRATE_ROOT}/projects:${CRATE_ROOT}/minimal"
22
22
prepend = " ${CRATE_ROOT}/core:${CRATE_ROOT}/projects:${CRATE_ROOT}/minimal"
23
23
24
24
[environment .'case(os)' .macos .DYLD_LIBRARY_PATH ]
25
- append = " ${CRATE_ROOT}/projects/lib/gnatcoll_projects/relocatable:${CRATE_ROOT}/core/lib/gnatcoll_core/relocatable:${CRATE_ROOT}/minimal/lib/gnatcoll_core/relocatable"
25
+ append = " ${CRATE_ROOT}/projects/lib/gnatcoll_projects/relocatable:${CRATE_ROOT}/core/lib/gnatcoll_core/relocatable:${CRATE_ROOT}/minimal/lib/gnatcoll_core/relocatable:${CRATE_ROOT}/lib/gnatcoll_projects/relocatable:${CRATE_ROOT}/lib/gnatcoll_core/relocatable "
26
26
27
27
[environment .'case(os)' .windows .PATH ]
28
- append = " ${CRATE_ROOT}/projects/lib/gnatcoll_projects/relocatable;${CRATE_ROOT}/core/lib/gnatcoll_core/relocatable;${CRATE_ROOT}/minimal/lib/gnatcoll_core/relocatable"
28
+ append = " ${CRATE_ROOT}/projects/lib/gnatcoll_projects/relocatable;${CRATE_ROOT}/core/lib/gnatcoll_core/relocatable;${CRATE_ROOT}/minimal/lib/gnatcoll_core/relocatable;${CRATE_ROOT}/lib/gnatcoll_projects/relocatable;${CRATE_ROOT}/lib/gnatcoll_core/relocatable "
29
29
30
30
[gpr-externals ]
31
31
GNATCOLL_ATOMICS = [" intrinsic" , " mutex" ]
You can’t perform that action at this time.
0 commit comments