Makefile: Add the ability to create a source code release with all deps #104240
4
.gitignore
vendored
4
.gitignore
vendored
@ -20,6 +20,10 @@ flamenco-worker.yaml
|
||||
flamenco-worker-credentials.yaml
|
||||
node_modules/
|
||||
|
||||
# Directories used to store go and yarn dependencies for offline building
|
||||
/vendor
|
||||
/web/app/package-cache
|
||||
|
||||
# Directory for custom job compiler scripts:
|
||||
/scripts/
|
||||
|
||||
|
29
Makefile
29
Makefile
@ -46,17 +46,14 @@ export CGO_ENABLED=0
|
||||
|
||||
all: application
|
||||
|
||||
# Install generators and build the software.
|
||||
with-deps:
|
||||
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen@v1.9.0
|
||||
go install github.com/golang/mock/mockgen@v1.6.0
|
||||
$(MAKE) application
|
||||
vendor: webapp-deps
|
||||
go mod vendor
|
||||
|
||||
vet:
|
||||
go vet ./...
|
||||
go run golang.org/x/vuln/cmd/govulncheck@latest ./...
|
||||
|
||||
application: webapp flamenco-manager flamenco-worker
|
||||
application: webapp-deps flamenco-manager flamenco-worker
|
||||
|
||||
flamenco-manager:
|
||||
$(MAKE) webapp-static
|
||||
@ -93,7 +90,7 @@ flamenco-worker_race:
|
||||
shaman-checkout-id-setter:
|
||||
go build -v ${BUILD_FLAGS} ${PKG}/cmd/shaman-checkout-id-setter
|
||||
|
||||
webapp:
|
||||
webapp-deps:
|
||||
yarn --cwd web/app install
|
||||
|
||||
|
||||
webapp-static: addon-packer
|
||||
@ -331,6 +328,9 @@ RELEASE_PACKAGE_WINDOWS := flamenco-${VERSION}-windows-amd64.zip
|
||||
RELEASE_PACKAGE_EXTRA_FILES := README.md LICENSE CHANGELOG.md
|
||||
RELEASE_PACKAGE_SHAFILE := flamenco-${VERSION}.sha256
|
||||
|
||||
RELEASE_SOURCE_ARCHIVE := flamenco-${VERSION}-src.tar
|
||||
RELEASE_SOURCE_ARCHIVE_GZ := flamenco-${VERSION}-src.tar.gz
|
||||
|
||||
Sybren A. Stüvel
commented
I think it's better to define I think it's better to define `RELEASE_SOURCE_ARCHIVE_GZ` as `${RELEASE_SOURCE_ARCHIVE}.gz`
|
||||
.PHONY: release-package
|
||||
release-package:
|
||||
$(MAKE) -s release-package-linux
|
||||
@ -377,12 +377,21 @@ release-package-windows:
|
||||
zip -r -9 dist/${RELEASE_PACKAGE_WINDOWS} flamenco-manager.exe flamenco-worker.exe ${RELEASE_PACKAGE_EXTRA_FILES} tools/*-windows*
|
||||
@echo "Done! Created ${RELEASE_PACKAGE_WINDOWS}"
|
||||
|
||||
.PHONY: release-package-source
|
||||
release-package-source: vendor
|
||||
mkdir -p dist
|
||||
rm -f dist/${RELEASE_SOURCE_ARCHIVE_GZ}
|
||||
git archive -o dist/${RELEASE_SOURCE_ARCHIVE} HEAD
|
||||
tar -rvf dist/${RELEASE_SOURCE_ARCHIVE} vendor web/app/package-cache
|
||||
gzip dist/${RELEASE_SOURCE_ARCHIVE}
|
||||
Sybren A. Stüvel
commented
What's the reason to use What's the reason to use `gzip` separately? Why not just use `tar z`?
|
||||
@echo "Done! Created ${RELEASE_SOURCE_ARCHIVE_GZ}"
|
||||
|
||||
.PHONY: publish-release-packages
|
||||
publish-release-packages:
|
||||
$(MAKE) -s check-environment
|
||||
cd dist; sha256sum ${RELEASE_PACKAGE_LINUX} ${RELEASE_PACKAGE_DARWIN} ${RELEASE_PACKAGE_WINDOWS} > ${RELEASE_PACKAGE_SHAFILE}
|
||||
cd dist; sha256sum ${RELEASE_PACKAGE_LINUX} ${RELEASE_PACKAGE_DARWIN} ${RELEASE_PACKAGE_WINDOWS} ${RELEASE_SOURCE_ARCHIVE_GZ} > ${RELEASE_PACKAGE_SHAFILE}
|
||||
cd dist; rsync -va \
|
||||
${RELEASE_PACKAGE_LINUX} ${RELEASE_PACKAGE_DARWIN} ${RELEASE_PACKAGE_WINDOWS} ${RELEASE_PACKAGE_SHAFILE} \
|
||||
${RELEASE_PACKAGE_LINUX} ${RELEASE_PACKAGE_DARWIN} ${RELEASE_PACKAGE_WINDOWS} ${RELEASE_SOURCE_ARCHIVE_GZ} ${RELEASE_PACKAGE_SHAFILE} \
|
||||
${WEBSERVER_SSH}:${WEBSERVER_ROOT}/downloads/
|
||||
|
||||
.PHONY: application version flamenco-manager flamenco-worker flamenco-manager_race flamenco-worker_race webapp webapp-static generate generate-go generate-py with-deps swagger-ui list-embedded test clean clean-webapp-static
|
||||
.PHONY: application version flamenco-manager flamenco-worker flamenco-manager_race flamenco-worker_race webapp-deps webapp-static generate generate-go generate-py vendor swagger-ui list-embedded test clean clean-webapp-static
|
||||
|
2
web/app/.yarnrc
Normal file
2
web/app/.yarnrc
Normal file
@ -0,0 +1,2 @@
|
||||
yarn-offline-mirror "./package-cache"
|
||||
yarn-offline-mirror-pruning true
|
||||
Sybren A. Stüvel
commented
Instead of always caching the packages, put this into a special file Instead of always caching the packages, put this into a special file `.yarnrc-source-pkg` or something, and specify that when running `yarn install` for grabbing the sources. That way the regular builds don't have to bother with this package cache.
|
Loading…
Reference in New Issue
Block a user
This comment should be hidden from the regular output. Right now it's actually shown when running
make webapp-deps
(and any other target that runs this target).