Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
asdf
asdf
Commits
0e517d4d
Commit
0e517d4d
authored
Oct 16, 2020
by
Robert Goldman
Browse files
Merge branch 'gitlab-ci' into 'master'
Add Gitlab CI configuration See merge request
asdf/asdf!146
parents
4c3fcb6f
c7ad384d
Pipeline
#1857
passed with stages
in 46 minutes and 53 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
0e517d4d
...
...
@@ -144,6 +144,34 @@ indeed, a developer may not only make mistakes, but may deliberately
introduce or re-introduce bugs at some place to test code in another place.
Contributing to ASDF
--------------------
Bugs can be filled on ASDF by reporting them on the
[
Gitlab issue
tracker
](
https://gitlab.common-lisp.net/asdf/asdf/-/issues
)
or sending them to
the
[
asdf-devel mailing list
](
https://mailman.common-lisp.net/listinfo/asdf-devel
)
.
You can contribute code to ASDF development by forking the
[
repository
](
https://gitlab.common-lisp.net/asdf/asdf
)
and sending a merge
request or sending a patch to the asdf-devel mailing list.
If you fork the repository on Gitlab, note that Gitlab CI is enabled to help in
automated testing. While not exhaustive, this can help make sure you don't
inadvertantly break anything with your patch! The tests will be run any time
you submit a merge request or manually trigger a run using Gitlab's UI. In
order for the tests to run properly (namely the ASDF upgrade tests), you must
ensure your fork contains the tags for every released version of ASDF. If your
fork is freshly created, this will happen automatically. However, if there has
been a release since you forked, you need to update your tags. Assuming that
your fork is the
`origin`
remote and upstream is the
`upstream`
remote, you can
do this by running:
git fetch upstream --tags
git push origin --tags
If you would like to enable test jobs that use the Lisp scripting test harness,
set the variable
`ENABLE_ASDF_TOOLS`
on a pipeline.
Debugging ASDF
--------------
...
...
@@ -297,3 +325,6 @@ How do I navigate this source tree?
*
[
TODO
](
TODO
)
*
Plenty of ideas for how to further improve ASDF
(not all of them guaranteed good ideas.)
*
[
gitlab-ci.yml
](
gitlab-ci.yml
)
*
A YAML file describing jobs for Gitlab CI to run.
gitlab-ci.yml
0 → 100644
View file @
0e517d4d
###############################################################################
# Global configuration
###############################################################################
variables
:
# Just let the runner fetch and update the submodules for us.
GIT_SUBMODULE_STRATEGY
:
normal
# This causes pipelines to be created only on the default branch, tags, merge
# requests, and when triggered via the web interface.
workflow
:
rules
:
-
if
:
$CI_MERGE_REQUEST_IID
-
if
:
$CI_COMMIT_TAG
-
if
:
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
-
if
:
$CI_PIPELINE_SOURCE == "web"
# Split regression testing into a separate stage than upgrade tests. The
# upgrade tests tend to run slower and are generally less important than
# regression tests for most changes.
stages
:
-
build
-
regression
-
upgrade
###############################################################################
# Build jobs
###############################################################################
Build ASDF
:
stage
:
build
image
:
debian:latest
script
:
-
apt-get update
-
apt-get install -y --no-install-recommends git make
-
make
artifacts
:
paths
:
-
build/asdf.lisp
Build docs
:
stage
:
build
image
:
debian:latest
script
:
-
apt-get update
-
apt-get install -y --no-install-recommends git make texinfo texlive
-
make -C doc
artifacts
:
paths
:
-
doc/asdf.html
-
doc/asdf.info
-
doc/asdf.pdf
Build asdf-tools
:
stage
:
build
image
:
mitmers/sbcl:latest
script
:
-
apt-get update
-
apt-get install -y --no-install-recommends git make
-
make -f Makefile-lisp-scripting build-asdf-tools
artifacts
:
paths
:
-
build/asdf-tools
rules
:
-
if
:
$ENABLE_ASDF_TOOLS
###############################################################################
# Testing Templates
###############################################################################
.Regression tests
:
stage
:
regression
image
:
mitmers/$l:$TAG
variables
:
TAG
:
latest
script
:
-
apt-get update
-
apt-get install -y --no-install-recommends git make
-
make
-
make test
artifacts
:
paths
:
-
build/results/$l-test.text
needs
:
[]
.Upgrade tests
:
stage
:
upgrade
image
:
mitmers/$l:$TAG
variables
:
TAG
:
latest
script
:
-
apt-get update
-
apt-get install -y --no-install-recommends git make
-
make
-
make test-upgrade
artifacts
:
paths
:
-
build/results/$l-upgrade.text
needs
:
[]
allow_failure
:
true
.Scripting regression tests
:
extends
:
.Regression tests
before_script
:
-
ln -s Makefile-lisp-scripting GNUmakefile
needs
:
-
Build asdf-tools
rules
:
-
if
:
$ENABLE_ASDF_TOOLS
.Scripting upgrade tests
:
extends
:
.Upgrade tests
before_script
:
-
ln -s Makefile-lisp-scripting GNUmakefile
needs
:
-
Build asdf-tools
rules
:
-
if
:
$ENABLE_ASDF_TOOLS
###############################################################################
# Actual test jobs - Makefile based harness
###############################################################################
ABCL regression tests
:
extends
:
.Regression tests
variables
:
l
:
abcl
ABCL upgrade tests
:
extends
:
.Upgrade tests
variables
:
l
:
abcl
CCL regression tests
:
extends
:
.Regression tests
variables
:
l
:
ccl
CCL upgrade tests
:
extends
:
.Upgrade tests
variables
:
l
:
ccl
ECL regression tests
:
extends
:
.Regression tests
variables
:
l
:
ecl
ECL upgrade tests
:
extends
:
.Upgrade tests
variables
:
l
:
ecl
SBCL regression tests
:
extends
:
.Regression tests
variables
:
l
:
sbcl
SBCL upgrade tests
:
extends
:
.Upgrade tests
variables
:
l
:
sbcl
###############################################################################
# Actual test jobs - lisp scripting based harness
###############################################################################
ABCL scripting regression tests
:
extends
:
.Scripting regression tests
variables
:
l
:
abcl
ABCL scripting upgrade tests
:
extends
:
.Scripting upgrade tests
variables
:
l
:
abcl
CCL scripting regression tests
:
extends
:
.Scripting regression tests
variables
:
l
:
ccl
CCL scripting upgrade tests
:
extends
:
.Scripting upgrade tests
variables
:
l
:
ccl
ECL scripting regression tests
:
extends
:
.Scripting regression tests
variables
:
l
:
ecl
ECL scripting upgrade tests
:
extends
:
.Scripting upgrade tests
variables
:
l
:
ecl
SBCL scripting regression tests
:
extends
:
.Scripting regression tests
variables
:
l
:
sbcl
SBCL scripting upgrade tests
:
extends
:
.Scripting upgrade tests
variables
:
l
:
sbcl
test/run-tests.sh
View file @
0e517d4d
...
...
@@ -476,6 +476,7 @@ run_upgrade_tests () {
su
=
test
/script-support.lisp
tags
=
"
`
upgrade_tags
`
"
methods
=
"
`
upgrade_methods
`
"
echo
success
>
build/results/
${
lisp
}
-upgrade
.status
{
for
tag
in
$tags
;
do
for
method
in
$methods
;
do
...
...
@@ -491,10 +492,21 @@ run_upgrade_tests () {
echo
"
$icmd
"
echo
"then copy/paste:"
echo
"(load
\"
$su
\"
) (asdf-test::da) (test-upgrade
$method
\"
$tag
\"
)"
exit
1
;
}
fi
;
done
;
done
echo
"Upgrade test succeeded for
${
lisp
}
"
echo
"failure"
>
"build/results/
${
lisp
}
-upgrade.status"
;
}
fi
;
done
;
done
;
read
status <
"build/results/
${
lisp
}
-upgrade.status"
if
[
"
$status
"
=
"success"
]
;
then
echo
"Upgrade test succeeded for
${
lisp
}
"
else
echo
"Upgrade test failed for
${
lisp
}
"
fi
;
}
2>&1 |
tee
build/results/
${
lisp
}
-upgrade
.text
# We need to reread the status because the piping to tee causes everything
# in the block above to be run in a subshell.
read
status <
"build/results/
${
lisp
}
-upgrade.status"
if
[
"
$status
"
=
"failure"
]
;
then
exit
1
fi
}
run_tests
()
{
create_config
...
...
test/test-run-program-unix.script
View file @
0e517d4d
...
...
@@ -480,7 +480,7 @@
(let ((process-info (launch-program "./sleeper.sh 12 1")))
(handle-result "alive?"
(process-alive-p process-info))
(sleep
2
)
(sleep
5
)
(handle-result "dead?"
(not (process-alive-p process-info)))
(wait-process process-info)))
...
...
@@ -552,7 +552,7 @@
(let* ((process-info (launch-program "./sleeper.sh 12 1"))
(status (process-status process-info)))
(handle-result "running?" (equal :running status))
(sleep
2
)
(sleep
5
)
(multiple-value-bind (status exit-code)
(process-status process-info)
(handle-result "exited?" (equal :exited status))
...
...
@@ -568,7 +568,7 @@
#+(and lispworks (not lispworks7+))
(skip-test "Known to fail")
(let* ((process-info (launch-program "./killer.sh")))
(sleep
1
)
(sleep
5
)
(multiple-value-bind (status code)
(process-status process-info)
(handle-result "exited or signaled?"
...
...
@@ -588,7 +588,7 @@
(define-test
":exited (it exited >128; repeated query)"
(let* ((process-info (launch-program "./killercontainer.sh")))
(sleep
1
)
(sleep
5
)
(multiple-value-bind (status code)
(process-status process-info)
(handle-result "exited?" (eq status :exited))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment