CC-30653 Updated file validation with empty allowed types. #1363
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
validation: | |
name: "Static analysis / PHP 8.0" | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: [ | |
'8.0', | |
'8.1' | |
] | |
env: | |
APPLICATION_ENV: ci.mysql | |
APPLICATION_STORE: DE | |
PROJECT: suite | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379/tcp | |
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Configure sysctl limits | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- name: Runs Elasticsearch | |
uses: elastic/elastic-github-actions/elasticsearch@master | |
with: | |
stack-version: 7.10.0 | |
port: 9200 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
extensions: mbstring, intl, pdo_mysql, redis | |
tools: composer:v2 | |
- name: Composer get cache directory | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Composer cache | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Composer validate | |
run: composer validate | |
- name: Composer version | |
run: composer --version | |
- name: Composer install | |
run: composer install | |
- name: Generate transfer objects | |
run: vendor/bin/console transfer:generate | |
- name: Generate transfer databuilder objects | |
run: vendor/bin/console transfer:databuilder:generate | |
- name: Propel install | |
run: | | |
vendor/bin/console propel:schema:copy | |
vendor/bin/console propel:model:build | |
vendor/bin/console transfer:entity:generate | |
- name: Setup search | |
run: vendor/bin/console setup:search | |
- name: Codecept build | |
run: vendor/bin/codecept build --ansi | |
- name: Generate autocompletion files | |
run: vendor/bin/console dev:ide-auto-completion:generate | |
- name: Generate rest API dcoumentation | |
run: vendor/bin/console rest-api:generate:documentation | |
- name: Frontend install-dependencies | |
run: | | |
vendor/bin/console frontend:project:install-dependencies -vvv | |
- name: Install NPM packages | |
run: | | |
sudo npm i --location=global --unsafe-perm speccy@0.11.0 | |
- name: Speccy lint Glue specification | |
run: speccy lint src/Generated/Glue/Specification/spryker_rest_api.schema.yml --rules=default | |
- name: Style lint | |
run: npm run yves:stylelint | |
- name: ES lint | |
run: npm run yves:lint | |
- name: Front-end Formatter | |
run: npm run formatter | |
- name: Validate propel files | |
run: | | |
vendor/bin/console propel:schema:validate | |
vendor/bin/console propel:schema:validate-xml-names | |
- name: Validate transfer files | |
run: vendor/bin/console transfer:validate | |
- name: Run CodeStyle checks | |
run: vendor/bin/console code:sniff:style | |
- name: Run Architecture rules | |
run: vendor/bin/phpmd src/ text vendor/spryker/architecture-sniffer/src/ruleset.xml --minimumpriority 2 | |
- name: Run PHPStan | |
run: vendor/bin/phpstan analyze -l 6 -c phpstan.neon src/ | |
- name: Run Evaluator | |
run: vendor/bin/evaluator evaluate | |
php-81-mariadb-glue-alpine: | |
name: "PHP 8.1 / MariaDB / Glue / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.api.mariadb.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept fixtures | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.api.yml | |
php-81-postgresql-glue-alpine: | |
name: "PHP 8.1 / PostgreSQL / Glue / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.api.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept fixtures | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.api.yml | |
php-81-mariadb-acceptance-alpine: | |
name: "PHP 8.1 / MariaDB / Acceptance / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.mariadb.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.acceptance.yml | |
php-81-postgresql-acceptance-alpine: | |
name: "PHP 8.1 / PostgreSQL / Acceptance / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.acceptance.yml | |
php-81-mariadb-functional-alpine: | |
name: "PHP 8.1 / MariaDB / Functional / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.functional.mariadb.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept run -c codeception.functional.yml | |
php-81-postgresql-functional-alpine: | |
name: "PHP 8.1 / PostgreSQL / Functional / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.functional.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.functional.yml | |
php-80-mariadb-glue-alpine: | |
name: "PHP 8.0 / MariaDB / Glue / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.api.mariadb.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept fixtures | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.api.yml | |
php-80-postgresql-acceptance-alpine: | |
name: "PHP 8.0 / PostgreSQL / Acceptance / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.acceptance.yml | |
php-80-postgresql-functional-alpine: | |
name: "PHP 8.0 / PostgreSQL / Functional / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.functional.yml | |
php-80-mariadb-acceptance-alpine: | |
name: "PHP 8.0 / MariaDB / Acceptance / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.mariadb.yml | |
docker/sdk up -t | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
docker/sdk testing codecept run -c codeception.acceptance.yml | |
php-80-mariadb-functional-alpine: | |
name: "PHP 8.0 / MariaDB / Functional / Alpine" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.functional.mariadb.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept run -c codeception.functional.yml | |
php-80-postgres-functional-debian: | |
name: "PHP 8.0 / PostgreSQL / Functional / Debian" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0-debian | |
TRAVIS: 1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install apt-packages | |
run: | | |
sudo apt-get install apache2-utils | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Run docker | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot deploy.ci.functional.yml -v | |
docker/sdk up -t -v | |
docker/sdk testing codecept run -c codeception.functional.yml | |
frontend-assets-via-docker-php-8-0: | |
name: "Docker / Alpine / PHP 8.0 / Frontend & Assets" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
steps: | |
- uses: actions/checkout@v3 | |
- run: echo eyAiZXhwZXJpbWVudGFsIiA6IHRydWUsICJmZWF0dXJlcyIgOiB7ICJidWlsZGtpdCI6IHRydWUgfSB9Cg==|base64 -d|sudo tee /etc/docker/daemon.json | |
- run: sudo apt-get install --only-upgrade docker -y | |
- run: sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
- run: sudo chmod +x /usr/local/bin/docker-compose | |
- run: git clone https://github.com/spryker/docker-sdk.git --single-branch --branch master ./docker | |
- run: docker/sdk boot deploy.yml | |
- run: SPRYKER_BUILD_HASH=myhash docker/sdk export images | |
- run: docker run -t --rm -e SPRYKER_NGINX_CGI_HOST_YVES_EU=localhost -e SPRYKER_NGINX_CGI_HOST_ZED_EU=localhost -e SPRYKER_NGINX_CGI_HOST_GLUE_EU=localhost -e SPRYKER_NGINX_CGI_HOST_YVES_US=localhost -e SPRYKER_NGINX_CGI_HOST_GLUE_US=localhost -e SPRYKER_NGINX_CGI_HOST_ZED_US=localhost -e ALLOWED_IP=127.0.0.1 spryker_b2c_frontend:1.0-frontend nginx -t | |
- run: docker run -t --rm --entrypoint='' spryker_b2c_frontend:1.0-frontend ls -al /data/public/Yves/assets/myhash | |
- run: docker run -t --rm --entrypoint='' spryker_b2c_frontend:1.0-frontend ls -al /data/public/Zed/assets/ | |
docker-alpine-php-8-0-mariadb-robot: | |
name: "Docker / Alpine / PHP 8.0 / MariaDB / Robot" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.0 | |
TRAVIS: 1 | |
ROBOT_TESTS_ARTIFACTS_BUCKET_REGION: eu-west-1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install apache2-utils | |
sudo apt install awscli -q | |
- name: Composer install | |
run: composer install | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Install Project | |
continue-on-error: true | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.mariadb.yml | |
docker/sdk up -t -v | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
sudo bash -c "echo '127.0.0.1 backend-api.at.spryker.local backend-api.de.spryker.local backend-gateway.at.spryker.local backend-gateway.de.spryker.local backoffice.at.spryker.local backoffice.de.spryker.local date-time-configurator-example.spryker.local glue.at.spryker.local glue.de.spryker.local yves.at.spryker.local yves.de.spryker.local glue-storefront.de.spryker.local glue-storefront.at.spryker.local' >> /etc/hosts" | |
- name: Run Tests | |
run: | | |
docker/sdk exec robot-framework robot -v env:api_b2c -v docker:True --exclude skip-due-to-issueORskip-due-to-refactoring -d results -s tests.api.b2c . | |
- name: Upload artifacts | |
if: always() | |
run: | | |
AWS_DEFAULT_REGION=${{env.ROBOT_TESTS_ARTIFACTS_BUCKET_REGION}} AWS_ACCESS_KEY_ID=${{ secrets.ROBOT_TESTS_ARTIFACTS_KEY }} AWS_SECRET_ACCESS_KEY=${{ secrets.ROBOT_TESTS_ARTIFACTS_SECRET }} aws s3 cp .robot/results s3://${{vars.ROBOT_TESTS_ARTIFACTS_BUCKET}}/b2c-robot-api-ci/${GITHUB_RUN_ID}/PHP8.0MariaDBRobot/ \ | |
--recursive \ | |
--expires "$(date -d '+7 days' --utc +'%Y-%m-%dT%H:%M:%SZ')" | |
docker-alpine-php-8-1-postgresql-robot: | |
name: "Docker / Alpine / PHP 8.1 / PostgreSQL / Robot" | |
runs-on: ubuntu-20.04 | |
env: | |
PROGRESS_TYPE: plain | |
SPRYKER_PLATFORM_IMAGE: spryker/php:8.1 | |
TRAVIS: 1 | |
ROBOT_TESTS_ARTIFACTS_BUCKET_REGION: eu-west-1 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- name: Install packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install apache2-utils | |
sudo apt install awscli -q | |
- name: Composer install | |
run: composer install | |
- name: Install docker-compose | |
run: | | |
sudo curl -L "https://github.com/docker/compose/releases/download/2.12.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | |
sudo chmod +x /usr/local/bin/docker-compose | |
- name: Install Project | |
continue-on-error: true | |
run: | | |
git clone https://github.com/spryker/docker-sdk.git ./docker | |
docker/sdk boot -v deploy.ci.acceptance.yml | |
docker/sdk up -t -v | |
docker/sdk testing console queue:worker:start --stop-when-empty | |
sudo bash -c "echo '127.0.0.1 backend-api.at.spryker.local backend-api.de.spryker.local backend-gateway.at.spryker.local backend-gateway.de.spryker.local backoffice.at.spryker.local backoffice.de.spryker.local date-time-configurator-example.spryker.local glue.at.spryker.local glue.de.spryker.local yves.at.spryker.local yves.de.spryker.local glue-storefront.de.spryker.local glue-storefront.at.spryker.local' >> /etc/hosts" | |
- name: Run Tests | |
run: | | |
docker/sdk exec robot-framework robot -v env:api_b2c -v db_engine:psycopg2 -v docker:True --exclude skip-due-to-issueORskip-due-to-refactoring -d results -s tests.api.b2c . | |
- name: Upload artifacts | |
if: always() | |
run: | | |
AWS_DEFAULT_REGION=${{env.ROBOT_TESTS_ARTIFACTS_BUCKET_REGION}} AWS_ACCESS_KEY_ID=${{ secrets.ROBOT_TESTS_ARTIFACTS_KEY }} AWS_SECRET_ACCESS_KEY=${{ secrets.ROBOT_TESTS_ARTIFACTS_SECRET }} aws s3 cp .robot/results s3://${{vars.ROBOT_TESTS_ARTIFACTS_BUCKET}}/b2c-robot-api-ci/${GITHUB_RUN_ID}/PHP8.1PostgreSQLRobot/ \ | |
--recursive \ | |
--expires "$(date -d '+7 days' --utc +'%Y-%m-%dT%H:%M:%SZ')" |