+
# Checkout both this pull request and the master branch
+
- name: Checkout pull request
+
- name: Checkout base branch
# shellcheck disable=SC2016
export LOCATION="mappings"
-
echo "Fetching base branch:"
+
echo "Fetching base branch '${BASE}':"
git fetch origin ${BASE} --depth=1
echo "Obtaining PR file change diff:"
-
DIFF="$(git --no-pager diff --name-only origin/"${BASE}" "${GITHUB_SHA}")"
+
DIFF="$(git --no-pager diff --name-status origin/"${BASE}" "${GITHUB_SHA}")"
rm -f fail-location fail-filename || :
echo "Validating all changed PR files are in the ${LOCATION} directory:"
-
echo "${DIFF}" | sort \
+
echo "${DIFF}" | awk '{print $2}' | sort \
| xargs -I{} bash -c '[[ {} =~ ^${LOCATION}/.*$ ]] && echo "pass: {}" || { echo "FAIL: {}"; touch fail-location; }'
-
echo "Validating all changed PR files have a lower case hexidecimal file name of 56 to 120 chars with a \".json\" file extension:"
-
echo "${DIFF}" | sort \
-
| xargs -I{} bash -c '[[ {} =~ ^${LOCATION}/[a-f0-9]{56,120}\.json$ ]] && echo "pass: {}" || { echo "FAIL: {}"; touch fail-filename; }'
[ -f "fail-location" ] && echo "ABORTING: File change location validation failed"
[ -f "fail-filename" ] && echo "ABORTING: File name validation failed"
[ -f "fail-location" ] || [ -f "fail-filename" ] && exit 1
+
echo "Obtaining the latest metadata GitHub PR validation tool:"
+
echo "curl -sLO https://hydra.iohk.io/job/Cardano/metadata-server/native.metadataValidatorGitHubTarball.x86_64-linux/latest-finished/download/1/metadata-validator-github.tar.gz"
+
curl -sLO https://hydra.iohk.io/job/Cardano/metadata-server/native.metadataValidatorGitHubTarball.x86_64-linux/latest-finished/download/1/metadata-validator-github.tar.gz
+
echo "Extracting the latest metadata GitHub PR validation tool:"
+
tar -zxvf metadata-validator-github.tar.gz
+
echo "Running the metadata GitHub PR validator on this PR:"
+
echo "./metadata-validator-github "${GITHUB_REPOSITORY_OWNER}" "$(cat "${GITHUB_EVENT_PATH}" | jq -r '.repository.name')" "${{ github.event.number }}" --expect-branch "${BASE}" --no-auth"
+
./metadata-validator-github "${GITHUB_REPOSITORY_OWNER}" "$(cat "${GITHUB_EVENT_PATH}" | jq -r '.repository.name')" "${{ github.event.number }}" --expect-branch "${BASE}" --no-auth
echo "Obtaining the latest metadata validation tool:"
-
echo "curl -sLO https://hydra.iohk.io/job/Cardano/metadata-server/native.metadataValidatorTarball.x86_64-linux/latest-finished/download/1/metadata-validator.tar.gz"
-
curl -sLO https://hydra.iohk.io/job/Cardano/metadata-server/native.metadataValidatorTarball.x86_64-linux/latest-finished/download/1/metadata-validator.tar.gz
+
echo "curl -sLO https://hydra.iohk.io/job/Cardano/cardano-metadata-submitter/native.metadataSubmitterTarball.x86_64-linux/latest-finished/download/1/cardano-metadata-submitter.tar.gz"
+
curl -sLO https://hydra.iohk.io/job/Cardano/cardano-metadata-submitter/native.metadataSubmitterTarball.x86_64-linux/latest-finished/download/1/cardano-metadata-submitter.tar.gz
echo "Extracting the latest metadata validation tool:"
-
tar -zxvf metadata-validator.tar.gz
+
tar -zxvf cardano-metadata-submitter.tar.gz
-
echo "Running the metadata validator on this PR:"
-
echo "./metadata-validator ${GITHUB_REPOSITORY_OWNER} $(cat "${GITHUB_EVENT_PATH}" | jq -r '.repository.name') ${{ github.event.number }} --no-auth"
-
./metadata-validator "${GITHUB_REPOSITORY_OWNER}" "$(cat "${GITHUB_EVENT_PATH}" | jq -r '.repository.name')" "${{ github.event.number }}" --no-auth
+
echo "Running the metadata validation tool on this PR:"
+
VALIDATOR="./cardano-metadata-submitter validate"
+
echo "${DIFF}" | grep "^M" | awk '{print $2}' | xargs --no-run-if-empty -- bash -c 'echo "$1 master/$2 pull-request/$2" && $1 master/$2 pull-request/$2' -- "$VALIDATOR"
+
echo "${DIFF}" | grep "^A" | awk '{print $2}' | xargs --no-run-if-empty -- bash -c 'echo "$1 pull-request/$2" && $1 pull-request/$2' -- "$VALIDATOR"
\ No newline at end of file