idrivee2-media-upload/vendor/aws/aws-sdk-php/Makefile
2026-08-17 15:50:51 +00:00

171 lines
6.4 KiB
Makefile

help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " clean to delete all Makefile artifacts"
@echo " clear-cache to clear the cached JSON compiled SDK files"
@echo " test to perform unit tests. Provide TEST to perform a specific test."
@echo " coverage to perform unit tests with code coverage. Provide TEST to perform a specific test."
@echo " coverage-show to show the code coverage report"
@echo " integ to run integration tests. Provide TEST to perform a specific test."
@echo " api to build the API documentation. Provide ISSUE_LOGGING_ENABLED to save build issues to file."
@echo " api-show to view the API documentation"
@echo " api-package to build the API documentation as a ZIP"
@echo " api-manifest to build an API manifest JSON file for the SDK"
@echo " compile-json to compile the JSON data files in src/data into PHP files"
@echo " package to package a phar and zip file for a release"
@echo " check-tag to ensure that the TAG argument was passed"
@echo " tag to chag tag a release based on the changelog. Must provide a TAG"
@echo " release to package the release and push it to GitHub. Must provide a TAG"
@echo " full-release to tag, package, and release the SDK. Provide TAG"
clean: clear-cache
rm -rf build/artifacts/*
clear-cache:
php build/aws-clear-cache.php
test:
AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar AWS_SESSION_TOKEN= \
AWS_CSM_ENABLED=false \
AWS_REGION= \
AWS_ENDPOINT_URL= \
AWS_SUPPRESS_PHP_DEPRECATION_WARNING=true \
vendor/bin/phpunit --no-coverage --testsuite=unit $(TEST)
test-phar: package
[ -f build/artifacts/behat.phar ] || (cd build/artifacts && \
wget https://github.com/Behat/Behat/releases/download/v3.0.15/behat.phar)
[ -f build/artifacts/phpunit.phar ] || (cd build/artifacts && \
wget https://phar.phpunit.de/phpunit.phar)
php -dopcache.enable_cli=1 build/phar-test-runner.php --format=progress
coverage:
@AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar AWS_CSM_ENABLED=false \
vendor/bin/phpunit --testsuite=unit --coverage-html=build/artifacts/coverage $(TEST)
coverage-show:
open build/artifacts/coverage/index.html
# Ensures that the MODELSDIR variable was passed to the make command
check-models-dir:
$(if $(MODELSDIR),,$(error MODELSDIR is not defined. Pass via "make tag MODELSDIR=../models"))
sync-models: check-models-dir
rsync -chavPL $(MODELSDIR) src/data --exclude="*/*/service-2.json" \
--exclude="*/*/resources-1.json" --exclude=".idea/" --exclude="*.iml" \
--exclude="sdb/" --exclude="lambda/2014-11-11/" --exclude=".git/" \
--exclude="*.md"
rsync -chavPL src/data/iot-data/ src/data/data.iot/
rm -rf src/data/iot-data
rsync -chavPL src/data/meteringmarketplace/ src/data/metering.marketplace/
rm -rf src/data/meteringmarketplace
integ:
vendor/bin/behat --format=progress --tags=integ
integ-nocrt:
vendor/bin/behat --format=progress --tags='@integ&&~@crt'
integ-standalone:
vendor/bin/behat --format=progress --tags='@integ&&~@requiresUniqueResources'
smoke:
vendor/bin/behat --format=progress --suite=smoke
smoke-noassumerole:
vendor/bin/behat --format=progress --suite=smoke --tags='~@noassumerole'
# Packages the phar and zip
package:
php build/packager.php $(SERVICE)
api-get-phpdocumentor:
mkdir -p build/artifacts
[ -f build/artifacts/phpDocumentor.phar ] || wget -q -O build/artifacts/phpDocumentor.phar https://github.com/phpDocumentor/phpDocumentor/releases/download/v3.4.3/phpDocumentor.phar
api: api-get-phpdocumentor
# Build the package if necessary.
[ -d build/artifacts/staging ] || make package
# Delete a previously built API build to avoid the prompt.
rm -rf build/artifacts/docs
php build/remove-method-annotations.php
php build/artifacts/phpDocumentor.phar run --config build/docs/phpdoc.dist.xml
php build/normalize-docs-files.php
make api-models
make redirect-map
api-models:
# Build custom docs
php build/docs.php $(if $(ISSUE_LOGGING_ENABLED),--issue-logging-enabled,)
redirect-map:
# Build redirect map
php build/build-redirect-map.php
api-show:
open build/artifacts/docs/index.html
api-package:
zip -r build/artifacts/aws-docs-api.zip build/artifacts/docs/build
api-manifest:
php build/build-manifest.php
make clear-cache
# Compiles JSON data files and prints the names of PHP data files created or
# updated.
compile-json:
php -dopcache.enable_cli=1 build/compile-json.php
git diff --name-only | grep ^src/data/.*\.json\.php$ || true
annotate-clients: clean
php build/annotate-clients.php --all
annotate-client-locator: clean
php build/annotate-client-locator.php
build-manifest:
php build/build-manifest.php >/dev/null
build: | build-manifest compile-json annotate-clients annotate-client-locator
# Ensures that the TAG variable was passed to the make command
check-tag:
$(if $(TAG),,$(error TAG is not defined. Pass via "make tag TAG=4.2.1"))
# Creates a release but does not push it. This task updates the changelog
# with the TAG environment variable, replaces the VERSION constant, ensures
# that the source is still valid after updating, commits the changelog and
# updated VERSION constant, creates an annotated git tag using chag, and
# prints out a diff of the last commit.
tag: check-tag
@echo Tagging $(TAG)
chag update $(TAG)
sed -i'' -e "s/VERSION = '.*'/VERSION = '$(TAG)'/" src/Sdk.php
php -l src/Sdk.php
git commit -a -m '$(TAG) release'
chag tag
@echo "Release has been created. Push using 'make release'"
@echo "Changes made in the release commit"
git diff HEAD~1 HEAD
# Creates a release based on the master branch and latest tag. This task
# pushes the latest tag, pushes master, creates a phar and zip, and creates
# a Github release. Use "TAG=X.Y.Z make tag" to create a release, and use
# "make release" to push a release. This task requires that the
# OAUTH_TOKEN environment variable is available and the token has permission
# to push to the repository.
release: check-tag package
git push origin master
git push origin $(TAG)
php build/gh-release.php $(TAG)
# Tags the repo and publishes a release.
full_release: tag release
.PHONY: help clean test coverage coverage-show integ package compile-json \
api-get-apigen api api-show api-package api-manifest \
check-tag tag release full-release clear-cache test-phar integ smoke \
api-models compile-json annotate-clients annotate-client-locator \
build-manifest check-models-dir sync-models