upload full testdata archive
PiperOrigin-RevId: 565017690
diff --git a/.gitattributes b/.gitattributes
index ba871fb..a0853c2 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -35,6 +35,7 @@
# Add more build files.
scripts !export-ignore
+scripts/download_testdata.sh !export-ignore
scripts/libbrotli*.pc.in !export-ignore
# Add testdata
diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml
index 91668d3..c21a144 100644
--- a/.github/workflows/build_test.yml
+++ b/.github/workflows/build_test.yml
@@ -357,39 +357,3 @@
python -VV
python -c "import sys; sys.exit('Invalid python version') if '.'.join(map(str,sys.version_info[0:2])) != '${{ matrix.python_version }}' else True"
python setup.py ${{ matrix.py_setuptools_cmd || 'test'}}
-
- archive_build:
- name: Build and test from archive
- runs-on: 'ubuntu-latest'
- defaults:
- run:
- shell: bash
- steps:
-
- - name: Checkout the source
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
- with:
- submodules: false
- fetch-depth: 1
-
- - name: Archive
- run: |
- git archive HEAD -o archive.tgz
-
- - name: Extract
- run: |
- mkdir archive
- cd archive
- tar xvzf ../archive.tgz
-
- - name: Configure and Build
- run: |
- cd archive
- cmake -B out .
- cmake --build out
-
- - name: Test
- run: |
- cd archive
- cd out
- ctest
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 00b2b33..4c0bc6f 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -119,4 +119,73 @@
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
with:
files: brotli-${{matrix.triplet}}.zip
- tag_name: dev/null
+
+ testdata_upload:
+ name: Upload testdata
+ runs-on: 'ubuntu-latest'
+ defaults:
+ run:
+ shell: bash
+ steps:
+
+ - name: Checkout the source
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ with:
+ submodules: false
+ fetch-depth: 1
+
+ - name: Compress testdata
+ run: |
+ tar cvfJ testdata.txz tests/testdata
+
+ - name: Upload archive to release
+ if: github.event_name == 'release'
+ uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v0.1.15
+ with:
+ files: testdata.txz
+
+ archive_build:
+ needs: testdata_upload
+ name: Build and test from archive
+ runs-on: 'ubuntu-latest'
+ defaults:
+ run:
+ shell: bash
+ steps:
+
+ - name: Checkout the source
+ uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
+ with:
+ submodules: false
+ fetch-depth: 1
+
+ - name: Archive
+ run: |
+ git archive HEAD -o archive.tgz
+
+ - name: Pick tag
+ run: |
+ echo "BROTLI_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
+
+ - name: Extract
+ run: |
+ mkdir archive
+ cd archive
+ tar xvzf ../archive.tgz
+
+ - name: Download testdata
+ run: |
+ cd archive
+ scripts/download_testdata.sh
+
+ - name: Configure and Build
+ run: |
+ cd archive
+ cmake -B out .
+ cmake --build out
+
+ - name: Test
+ run: |
+ cd archive
+ cd out
+ ctest
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2400230..64b979a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -261,7 +261,7 @@
-P ${CMAKE_CURRENT_SOURCE_DIR}/tests/run-roundtrip-test.cmake)
endforeach()
else()
- message(NOTICE "Test file ${INPUT} does not exist; OK on tarball builds")
+ message(NOTICE "Test file ${INPUT} does not exist; OK on tarball builds; consider running scripts/download_testdata.sh before configuring.")
endif()
endforeach()
diff --git a/scripts/download_testdata.sh b/scripts/download_testdata.sh
new file mode 100755
index 0000000..b93028d
--- /dev/null
+++ b/scripts/download_testdata.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -x
+BROTLI_TAG=${BROTLI_TAG:-dev/null}
+BROTLI_TAG="${BROTLI_TAG//'/'/%2F}" # Escaping for tag names with slash (e.g. "dev/null")
+ARCHIVE=testdata.txz
+curl -L https://github.com/google/brotli/releases/download/${BROTLI_TAG}/${ARCHIVE} -o ${ARCHIVE}
+tar xvfJ ${ARCHIVE}