aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2019-10-31 12:01:34 +0100
committerPatrick Spek <p.spek@tyil.nl>2019-10-31 12:01:34 +0100
commit5511989854671aa28628a43cf723603211297241 (patch)
tree52737900faed6502e842888682267bbcac765119
parentc819cba104e6eb22ec55a633a8b9c914e2733584 (diff)
Use a work directory
-rw-r--r--.gitignore6
-rw-r--r--.gitlab-ci.yml14
-rwxr-xr-xbin/mkrelease.sh23
-rw-r--r--bundle/Configure.pl (renamed from Configure.pl)0
-rw-r--r--bundle/README.md (renamed from README)0
-rw-r--r--bundle/build_msi.bat (renamed from build_msi.bat)0
-rw-r--r--tools/star/Makefile90
7 files changed, 86 insertions, 47 deletions
diff --git a/.gitignore b/.gitignore
index 3e45564..435fc1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,11 +6,7 @@
# Temporary files used to build a new Rakudo Star release
MANIFEST
Makefile
-MoarVM
config.status
-install
-nqp
perl6
-rakudo
release
-src
+work
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cda7a00..b5977fd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,26 +10,24 @@ Tarball:
script:
- git submodule sync
- git submodule update --init --recursive
- - make -f tools/star/Makefile
- - make -f tools/star/Makefile release VERSION=$CI_COMMIT_REF_NAME
+ - bin/mkrelease.sh "$CI_COMMIT_REF_NAME"
artifacts:
paths:
- - release
+ - work/release
MoarVM:
stage: Build
image: alpine:latest
before_script:
- apk add --no-cache bash build-base git perl
- - cd "$(mktemp -d)"
- - tar xf "$CI_PROJECT_DIR/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz"
+ - cd -- "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz"
script:
- cd "rakudo-star-$CI_COMMIT_REF_NAME"
- - perl Configure.pl --prefix=/usr/local --backend=moar --gen-moar --make-install
+ - perl Configure.pl --prefix="$CI_PROJECT_DIR/work/install" --backend=moar --gen-moar --make-install
artifacts:
paths:
- - "$CI_COMMIT_REF_NAME/release"
- - /usr/local
+ - work/install
# TODO: Run tests
# TODO: Release an updated Docker container
diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh
new file mode 100755
index 0000000..7c712e0
--- /dev/null
+++ b/bin/mkrelease.sh
@@ -0,0 +1,23 @@
+#! /usr/bin/env sh
+
+readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)
+
+main()
+{
+ if [ -z "$1" ]
+ then
+ usage
+ exit 1
+ fi
+
+ cd -- "$BASEDIR"
+ make -f tools/star/Makefile all VERSION="$1"
+ make -f tools/star/Makefile release VERSION="$1"
+}
+
+usage()
+{
+ print "NYI"
+}
+
+main "$@"
diff --git a/Configure.pl b/bundle/Configure.pl
index 4a1984e..4a1984e 100644
--- a/Configure.pl
+++ b/bundle/Configure.pl
diff --git a/README b/bundle/README.md
index 857b3a6..857b3a6 100644
--- a/README
+++ b/bundle/README.md
diff --git a/build_msi.bat b/bundle/build_msi.bat
index 270c5f9..270c5f9 100644
--- a/build_msi.bat
+++ b/bundle/build_msi.bat
diff --git a/tools/star/Makefile b/tools/star/Makefile
index 9d74422..a1b879a 100644
--- a/tools/star/Makefile
+++ b/tools/star/Makefile
@@ -9,7 +9,9 @@ MOAR_VER = 2019.07.1
STAR_REL = rakudo-star-$(VERSION)
STAR_TGZ = $(STAR_REL).tar.gz
-SRC_DIR = src
+SRC_DIR = work/src
+WORKDIR ?= $(shell pwd)/work/rakudo-star-$(VERSION)
+RELEASE_DIR = $(shell pwd)/work/release
RAKUDO_TGZ = rakudo-$(RAKUDO_VER).tar.gz
RAKUDO_URL = https://rakudo.perl6.org/downloads/rakudo/$(RAKUDO_TGZ)
@@ -26,29 +28,27 @@ PREFIX = $(PERL) $(CURDIR)/tools/star/prefix.pl
WGET = wget
TAR = tar
-all: rakudo nqp moar manifest
-
-always:
+all: rakudo nqp moarvm manifest
rakudo: nqp $(RAKUDO_SRC)
- mkdir rakudo
- $(TAR) -C rakudo --strip-components 1 -xzf $(RAKUDO_SRC)
+ mkdir -p $(WORKDIR)/rakudo
+ $(TAR) -C $(WORKDIR)/rakudo --strip-components 1 -xzf $(RAKUDO_SRC)
$(RAKUDO_SRC):
mkdir -p $(SRC_DIR)
$(WGET) $(RAKUDO_URL) -O $(RAKUDO_SRC)
-nqp: moar $(NQP_SRC)
- mkdir nqp
- $(TAR) -C nqp --strip-components 1 -xzf $(NQP_SRC)
+nqp: moarvm $(NQP_SRC)
+ mkdir -p $(WORKDIR)/nqp
+ $(TAR) -C $(WORKDIR)/nqp --strip-components 1 -xzf $(NQP_SRC)
$(NQP_SRC):
mkdir -p $(SRC_DIR)
$(WGET) $(NQP_URL) -O $(NQP_SRC)
-moar: $(MOAR_SRC)
- mkdir MoarVM
- $(TAR) -C MoarVM --strip-components 1 -xzf $(MOAR_SRC)
+moarvm: $(MOAR_SRC)
+ mkdir -p $(WORKDIR)/MoarVM
+ $(TAR) -C $(WORKDIR)/MoarVM --strip-components 1 -xzf $(MOAR_SRC)
$(MOAR_SRC):
mkdir -p $(SRC_DIR)
@@ -59,37 +59,59 @@ modules/DBIish/lib:
git submodule init
git submodule update
-manifest: modules/DBIish/lib
- echo MANIFEST >MANIFEST
- git ls-files >>MANIFEST
- $(PREFIX) rakudo/ rakudo/MANIFEST >>MANIFEST
- $(PREFIX) nqp/ nqp/MANIFEST >>MANIFEST
- $(PREFIX) MoarVM/ MoarVM/MANIFEST >>MANIFEST
- git submodule foreach --quiet 'git ls-files | $(PREFIX) $$path/' >>MANIFEST
- grep -v -f tools/star/MANIFEST.exclude MANIFEST >MANIFEST.1
- $(PERL) -n -e 'chomp; print "$$_\n"' MANIFEST.1 >MANIFEST
- sort -o MANIFEST MANIFEST
- rm MANIFEST.1
+manifest:
+ printf "%s\n" MANIFEST >> "$(WORKDIR)/MANIFEST"
+
+ # Add an assortment of files from this repository
+ git ls-files | grep -E '^docs' >> "$(WORKDIR)/MANIFEST"
+ git ls-files | grep -E '^modules' >> "$(WORKDIR)/MANIFEST"
+ git ls-files | grep -E '^ports' >> "$(WORKDIR)/MANIFEST"
+ git ls-files | grep -E '^tools' >> "$(WORKDIR)/MANIFEST"
+
+ printf "%s\n" build_msi.bat >> "$(WORKDIR)/MANIFEST"
+ printf "%s\n" Configure.pl >> "$(WORKDIR)/MANIFEST"
+ printf "%s\n" LICENSE >> "$(WORKDIR)/MANIFEST"
+ printf "%s\n" README.md >> "$(WORKDIR)/MANIFEST"
+
+ # Add the 3 core parts for Raku
+ cd -- "$(WORKDIR)" && $(PREFIX) rakudo/ rakudo/MANIFEST >> "$(WORKDIR)/MANIFEST"
+ cd -- "$(WORKDIR)" && $(PREFIX) nqp/ nqp/MANIFEST >> "$(WORKDIR)/MANIFEST"
+ cd -- "$(WORKDIR)" && $(PREFIX) MoarVM/ MoarVM/MANIFEST >> "$(WORKDIR)/MANIFEST"
+
+ # Add ecosystem modules
+ git submodule foreach --quiet 'git ls-files | $(PREFIX) $$path/' >> $(WORKDIR)/MANIFEST
+
+ # Remove explicitly removed files
+ grep -v -f tools/star/MANIFEST.exclude $(WORKDIR)/MANIFEST > $(WORKDIR)/MANIFEST.1
+ mv -- "$(WORKDIR)/MANIFEST.1" "$(WORKDIR)/MANIFEST"
+
+ # Clean up whitespace
+ $(PERL) -n -e 'chomp; print "$$_\n"' $(WORKDIR)/MANIFEST > $(WORKDIR)/MANIFEST.1
+ mv -- "$(WORKDIR)/MANIFEST.1" "$(WORKDIR)/MANIFEST"
+
+ # Sort the MANIFEST
+ sort -o $(WORKDIR)/MANIFEST $(WORKDIR)/MANIFEST
patch:
patch -p1 < patches/star-ver.patch
tarball: manifest
[ -n "$(VERSION)" ] || ( echo "\nTry '$(MAKE) release VERSION=yyyy.mm'\n\n"; exit 1 )
- [ -d $(STAR_REL) ] || ln -s . $(STAR_REL)
-
- mkdir -p "release"
- $(PREFIX) $(STAR_REL)/ MANIFEST \
- | grep -Ev '^$(STAR_REL)/release/' \
- | $(TAR) -zc -T - -f "release/$(STAR_TGZ)"
+ mkdir -p "$(RELEASE_DIR)"
+ cp -r modules "$(WORKDIR)/."
+ cp -r docs "$(WORKDIR)/."
+ cp -r ports "$(WORKDIR)/."
+ cp -r tools "$(WORKDIR)/."
+ cp LICENSE "$(WORKDIR)/."
+ cp bundle/README.md "$(WORKDIR)/."
+ cp bundle/build_msi.bat "$(WORKDIR)/."
+ cp bundle/Configure.pl "$(WORKDIR)/."
- rm $(STAR_REL)
+ cd -- work && $(PREFIX) $(STAR_REL)/ "$(WORKDIR)/MANIFEST" \
+ | $(TAR) -zc -T - -f "$(RELEASE_DIR)/$(STAR_TGZ)"
release: tarball
clean:
- rm -fr rakudo
- rm -fr nqp
- rm -fr MoarVM
- rm -fr src
+ rm -fr work