diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 24ed1659..45d11d9d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,3 +18,5 @@ jobs: pip install -r requirements.txt - name: PyTest run: pytest + env: + TEST_DAGSTER_VERSION: "1.11.2" \ No newline at end of file diff --git a/scripts/complete_platforms/manylinux_2_28_x86_64.json b/scripts/complete_platforms/manylinux_2_28_x86_64.json deleted file mode 100644 index 88337f05..00000000 --- a/scripts/complete_platforms/manylinux_2_28_x86_64.json +++ /dev/null @@ -1,789 +0,0 @@ -{ - "path": "/opt/_internal/cpython-3.12.10/bin/python3.12", - "compatible_tags": [ - "cp312-cp312-manylinux_2_28_x86_64", - "cp312-cp312-manylinux_2_27_x86_64", - "cp312-cp312-manylinux_2_26_x86_64", - "cp312-cp312-manylinux_2_25_x86_64", - "cp312-cp312-manylinux_2_24_x86_64", - "cp312-cp312-manylinux_2_23_x86_64", - "cp312-cp312-manylinux_2_22_x86_64", - "cp312-cp312-manylinux_2_21_x86_64", - "cp312-cp312-manylinux_2_20_x86_64", - "cp312-cp312-manylinux_2_19_x86_64", - "cp312-cp312-manylinux_2_18_x86_64", - "cp312-cp312-manylinux_2_17_x86_64", - "cp312-cp312-manylinux2014_x86_64", - "cp312-cp312-manylinux_2_16_x86_64", - "cp312-cp312-manylinux_2_15_x86_64", - "cp312-cp312-manylinux_2_14_x86_64", - "cp312-cp312-manylinux_2_13_x86_64", - "cp312-cp312-manylinux_2_12_x86_64", - "cp312-cp312-manylinux2010_x86_64", - "cp312-cp312-manylinux_2_11_x86_64", - "cp312-cp312-manylinux_2_10_x86_64", - "cp312-cp312-manylinux_2_9_x86_64", - "cp312-cp312-manylinux_2_8_x86_64", - "cp312-cp312-manylinux_2_7_x86_64", - "cp312-cp312-manylinux_2_6_x86_64", - "cp312-cp312-manylinux_2_5_x86_64", - "cp312-cp312-manylinux1_x86_64", - "cp312-cp312-linux_x86_64", - "cp312-abi3-manylinux_2_28_x86_64", - "cp312-abi3-manylinux_2_27_x86_64", - "cp312-abi3-manylinux_2_26_x86_64", - "cp312-abi3-manylinux_2_25_x86_64", - "cp312-abi3-manylinux_2_24_x86_64", - "cp312-abi3-manylinux_2_23_x86_64", - "cp312-abi3-manylinux_2_22_x86_64", - "cp312-abi3-manylinux_2_21_x86_64", - "cp312-abi3-manylinux_2_20_x86_64", - "cp312-abi3-manylinux_2_19_x86_64", - "cp312-abi3-manylinux_2_18_x86_64", - "cp312-abi3-manylinux_2_17_x86_64", - "cp312-abi3-manylinux2014_x86_64", - "cp312-abi3-manylinux_2_16_x86_64", - "cp312-abi3-manylinux_2_15_x86_64", - "cp312-abi3-manylinux_2_14_x86_64", - "cp312-abi3-manylinux_2_13_x86_64", - "cp312-abi3-manylinux_2_12_x86_64", - "cp312-abi3-manylinux2010_x86_64", - "cp312-abi3-manylinux_2_11_x86_64", - "cp312-abi3-manylinux_2_10_x86_64", - "cp312-abi3-manylinux_2_9_x86_64", - "cp312-abi3-manylinux_2_8_x86_64", - "cp312-abi3-manylinux_2_7_x86_64", - "cp312-abi3-manylinux_2_6_x86_64", - "cp312-abi3-manylinux_2_5_x86_64", - "cp312-abi3-manylinux1_x86_64", - "cp312-abi3-linux_x86_64", - "cp312-none-manylinux_2_28_x86_64", - "cp312-none-manylinux_2_27_x86_64", - "cp312-none-manylinux_2_26_x86_64", - "cp312-none-manylinux_2_25_x86_64", - "cp312-none-manylinux_2_24_x86_64", - "cp312-none-manylinux_2_23_x86_64", - "cp312-none-manylinux_2_22_x86_64", - "cp312-none-manylinux_2_21_x86_64", - "cp312-none-manylinux_2_20_x86_64", - "cp312-none-manylinux_2_19_x86_64", - "cp312-none-manylinux_2_18_x86_64", - "cp312-none-manylinux_2_17_x86_64", - "cp312-none-manylinux2014_x86_64", - "cp312-none-manylinux_2_16_x86_64", - "cp312-none-manylinux_2_15_x86_64", - "cp312-none-manylinux_2_14_x86_64", - "cp312-none-manylinux_2_13_x86_64", - "cp312-none-manylinux_2_12_x86_64", - "cp312-none-manylinux2010_x86_64", - "cp312-none-manylinux_2_11_x86_64", - "cp312-none-manylinux_2_10_x86_64", - "cp312-none-manylinux_2_9_x86_64", - "cp312-none-manylinux_2_8_x86_64", - "cp312-none-manylinux_2_7_x86_64", - "cp312-none-manylinux_2_6_x86_64", - "cp312-none-manylinux_2_5_x86_64", - "cp312-none-manylinux1_x86_64", - "cp312-none-linux_x86_64", - "cp311-abi3-manylinux_2_28_x86_64", - "cp311-abi3-manylinux_2_27_x86_64", - "cp311-abi3-manylinux_2_26_x86_64", - "cp311-abi3-manylinux_2_25_x86_64", - "cp311-abi3-manylinux_2_24_x86_64", - "cp311-abi3-manylinux_2_23_x86_64", - "cp311-abi3-manylinux_2_22_x86_64", - "cp311-abi3-manylinux_2_21_x86_64", - "cp311-abi3-manylinux_2_20_x86_64", - "cp311-abi3-manylinux_2_19_x86_64", - "cp311-abi3-manylinux_2_18_x86_64", - "cp311-abi3-manylinux_2_17_x86_64", - "cp311-abi3-manylinux2014_x86_64", - "cp311-abi3-manylinux_2_16_x86_64", - "cp311-abi3-manylinux_2_15_x86_64", - "cp311-abi3-manylinux_2_14_x86_64", - "cp311-abi3-manylinux_2_13_x86_64", - "cp311-abi3-manylinux_2_12_x86_64", - "cp311-abi3-manylinux2010_x86_64", - "cp311-abi3-manylinux_2_11_x86_64", - "cp311-abi3-manylinux_2_10_x86_64", - "cp311-abi3-manylinux_2_9_x86_64", - "cp311-abi3-manylinux_2_8_x86_64", - "cp311-abi3-manylinux_2_7_x86_64", - "cp311-abi3-manylinux_2_6_x86_64", - "cp311-abi3-manylinux_2_5_x86_64", - "cp311-abi3-manylinux1_x86_64", - "cp311-abi3-linux_x86_64", - "cp310-abi3-manylinux_2_28_x86_64", - "cp310-abi3-manylinux_2_27_x86_64", - "cp310-abi3-manylinux_2_26_x86_64", - "cp310-abi3-manylinux_2_25_x86_64", - "cp310-abi3-manylinux_2_24_x86_64", - "cp310-abi3-manylinux_2_23_x86_64", - "cp310-abi3-manylinux_2_22_x86_64", - "cp310-abi3-manylinux_2_21_x86_64", - "cp310-abi3-manylinux_2_20_x86_64", - "cp310-abi3-manylinux_2_19_x86_64", - "cp310-abi3-manylinux_2_18_x86_64", - "cp310-abi3-manylinux_2_17_x86_64", - "cp310-abi3-manylinux2014_x86_64", - "cp310-abi3-manylinux_2_16_x86_64", - "cp310-abi3-manylinux_2_15_x86_64", - "cp310-abi3-manylinux_2_14_x86_64", - "cp310-abi3-manylinux_2_13_x86_64", - "cp310-abi3-manylinux_2_12_x86_64", - "cp310-abi3-manylinux2010_x86_64", - "cp310-abi3-manylinux_2_11_x86_64", - "cp310-abi3-manylinux_2_10_x86_64", - "cp310-abi3-manylinux_2_9_x86_64", - "cp310-abi3-manylinux_2_8_x86_64", - "cp310-abi3-manylinux_2_7_x86_64", - "cp310-abi3-manylinux_2_6_x86_64", - "cp310-abi3-manylinux_2_5_x86_64", - "cp310-abi3-manylinux1_x86_64", - "cp310-abi3-linux_x86_64", - "cp39-abi3-manylinux_2_28_x86_64", - "cp39-abi3-manylinux_2_27_x86_64", - "cp39-abi3-manylinux_2_26_x86_64", - "cp39-abi3-manylinux_2_25_x86_64", - "cp39-abi3-manylinux_2_24_x86_64", - "cp39-abi3-manylinux_2_23_x86_64", - "cp39-abi3-manylinux_2_22_x86_64", - "cp39-abi3-manylinux_2_21_x86_64", - "cp39-abi3-manylinux_2_20_x86_64", - "cp39-abi3-manylinux_2_19_x86_64", - "cp39-abi3-manylinux_2_18_x86_64", - "cp39-abi3-manylinux_2_17_x86_64", - "cp39-abi3-manylinux2014_x86_64", - "cp39-abi3-manylinux_2_16_x86_64", - "cp39-abi3-manylinux_2_15_x86_64", - "cp39-abi3-manylinux_2_14_x86_64", - "cp39-abi3-manylinux_2_13_x86_64", - "cp39-abi3-manylinux_2_12_x86_64", - "cp39-abi3-manylinux2010_x86_64", - "cp39-abi3-manylinux_2_11_x86_64", - "cp39-abi3-manylinux_2_10_x86_64", - "cp39-abi3-manylinux_2_9_x86_64", - "cp39-abi3-manylinux_2_8_x86_64", - "cp39-abi3-manylinux_2_7_x86_64", - "cp39-abi3-manylinux_2_6_x86_64", - "cp39-abi3-manylinux_2_5_x86_64", - "cp39-abi3-manylinux1_x86_64", - "cp39-abi3-linux_x86_64", - "cp38-abi3-manylinux_2_28_x86_64", - "cp38-abi3-manylinux_2_27_x86_64", - "cp38-abi3-manylinux_2_26_x86_64", - "cp38-abi3-manylinux_2_25_x86_64", - "cp38-abi3-manylinux_2_24_x86_64", - "cp38-abi3-manylinux_2_23_x86_64", - "cp38-abi3-manylinux_2_22_x86_64", - "cp38-abi3-manylinux_2_21_x86_64", - "cp38-abi3-manylinux_2_20_x86_64", - "cp38-abi3-manylinux_2_19_x86_64", - "cp38-abi3-manylinux_2_18_x86_64", - "cp38-abi3-manylinux_2_17_x86_64", - "cp38-abi3-manylinux2014_x86_64", - "cp38-abi3-manylinux_2_16_x86_64", - "cp38-abi3-manylinux_2_15_x86_64", - "cp38-abi3-manylinux_2_14_x86_64", - "cp38-abi3-manylinux_2_13_x86_64", - "cp38-abi3-manylinux_2_12_x86_64", - "cp38-abi3-manylinux2010_x86_64", - "cp38-abi3-manylinux_2_11_x86_64", - "cp38-abi3-manylinux_2_10_x86_64", - "cp38-abi3-manylinux_2_9_x86_64", - "cp38-abi3-manylinux_2_8_x86_64", - "cp38-abi3-manylinux_2_7_x86_64", - "cp38-abi3-manylinux_2_6_x86_64", - "cp38-abi3-manylinux_2_5_x86_64", - "cp38-abi3-manylinux1_x86_64", - "cp38-abi3-linux_x86_64", - "cp37-abi3-manylinux_2_28_x86_64", - "cp37-abi3-manylinux_2_27_x86_64", - "cp37-abi3-manylinux_2_26_x86_64", - "cp37-abi3-manylinux_2_25_x86_64", - "cp37-abi3-manylinux_2_24_x86_64", - "cp37-abi3-manylinux_2_23_x86_64", - "cp37-abi3-manylinux_2_22_x86_64", - "cp37-abi3-manylinux_2_21_x86_64", - "cp37-abi3-manylinux_2_20_x86_64", - "cp37-abi3-manylinux_2_19_x86_64", - "cp37-abi3-manylinux_2_18_x86_64", - "cp37-abi3-manylinux_2_17_x86_64", - "cp37-abi3-manylinux2014_x86_64", - "cp37-abi3-manylinux_2_16_x86_64", - "cp37-abi3-manylinux_2_15_x86_64", - "cp37-abi3-manylinux_2_14_x86_64", - "cp37-abi3-manylinux_2_13_x86_64", - "cp37-abi3-manylinux_2_12_x86_64", - "cp37-abi3-manylinux2010_x86_64", - "cp37-abi3-manylinux_2_11_x86_64", - "cp37-abi3-manylinux_2_10_x86_64", - "cp37-abi3-manylinux_2_9_x86_64", - "cp37-abi3-manylinux_2_8_x86_64", - "cp37-abi3-manylinux_2_7_x86_64", - "cp37-abi3-manylinux_2_6_x86_64", - "cp37-abi3-manylinux_2_5_x86_64", - "cp37-abi3-manylinux1_x86_64", - "cp37-abi3-linux_x86_64", - "cp36-abi3-manylinux_2_28_x86_64", - "cp36-abi3-manylinux_2_27_x86_64", - "cp36-abi3-manylinux_2_26_x86_64", - "cp36-abi3-manylinux_2_25_x86_64", - "cp36-abi3-manylinux_2_24_x86_64", - "cp36-abi3-manylinux_2_23_x86_64", - "cp36-abi3-manylinux_2_22_x86_64", - "cp36-abi3-manylinux_2_21_x86_64", - "cp36-abi3-manylinux_2_20_x86_64", - "cp36-abi3-manylinux_2_19_x86_64", - "cp36-abi3-manylinux_2_18_x86_64", - "cp36-abi3-manylinux_2_17_x86_64", - "cp36-abi3-manylinux2014_x86_64", - "cp36-abi3-manylinux_2_16_x86_64", - "cp36-abi3-manylinux_2_15_x86_64", - "cp36-abi3-manylinux_2_14_x86_64", - "cp36-abi3-manylinux_2_13_x86_64", - "cp36-abi3-manylinux_2_12_x86_64", - "cp36-abi3-manylinux2010_x86_64", - "cp36-abi3-manylinux_2_11_x86_64", - "cp36-abi3-manylinux_2_10_x86_64", - "cp36-abi3-manylinux_2_9_x86_64", - "cp36-abi3-manylinux_2_8_x86_64", - "cp36-abi3-manylinux_2_7_x86_64", - "cp36-abi3-manylinux_2_6_x86_64", - "cp36-abi3-manylinux_2_5_x86_64", - "cp36-abi3-manylinux1_x86_64", - "cp36-abi3-linux_x86_64", - "cp35-abi3-manylinux_2_28_x86_64", - "cp35-abi3-manylinux_2_27_x86_64", - "cp35-abi3-manylinux_2_26_x86_64", - "cp35-abi3-manylinux_2_25_x86_64", - "cp35-abi3-manylinux_2_24_x86_64", - "cp35-abi3-manylinux_2_23_x86_64", - "cp35-abi3-manylinux_2_22_x86_64", - "cp35-abi3-manylinux_2_21_x86_64", - "cp35-abi3-manylinux_2_20_x86_64", - "cp35-abi3-manylinux_2_19_x86_64", - "cp35-abi3-manylinux_2_18_x86_64", - "cp35-abi3-manylinux_2_17_x86_64", - "cp35-abi3-manylinux2014_x86_64", - "cp35-abi3-manylinux_2_16_x86_64", - "cp35-abi3-manylinux_2_15_x86_64", - "cp35-abi3-manylinux_2_14_x86_64", - "cp35-abi3-manylinux_2_13_x86_64", - "cp35-abi3-manylinux_2_12_x86_64", - "cp35-abi3-manylinux2010_x86_64", - "cp35-abi3-manylinux_2_11_x86_64", - "cp35-abi3-manylinux_2_10_x86_64", - "cp35-abi3-manylinux_2_9_x86_64", - "cp35-abi3-manylinux_2_8_x86_64", - "cp35-abi3-manylinux_2_7_x86_64", - "cp35-abi3-manylinux_2_6_x86_64", - "cp35-abi3-manylinux_2_5_x86_64", - "cp35-abi3-manylinux1_x86_64", - "cp35-abi3-linux_x86_64", - "cp34-abi3-manylinux_2_28_x86_64", - "cp34-abi3-manylinux_2_27_x86_64", - "cp34-abi3-manylinux_2_26_x86_64", - "cp34-abi3-manylinux_2_25_x86_64", - "cp34-abi3-manylinux_2_24_x86_64", - "cp34-abi3-manylinux_2_23_x86_64", - "cp34-abi3-manylinux_2_22_x86_64", - "cp34-abi3-manylinux_2_21_x86_64", - "cp34-abi3-manylinux_2_20_x86_64", - "cp34-abi3-manylinux_2_19_x86_64", - "cp34-abi3-manylinux_2_18_x86_64", - "cp34-abi3-manylinux_2_17_x86_64", - "cp34-abi3-manylinux2014_x86_64", - "cp34-abi3-manylinux_2_16_x86_64", - "cp34-abi3-manylinux_2_15_x86_64", - "cp34-abi3-manylinux_2_14_x86_64", - "cp34-abi3-manylinux_2_13_x86_64", - "cp34-abi3-manylinux_2_12_x86_64", - "cp34-abi3-manylinux2010_x86_64", - "cp34-abi3-manylinux_2_11_x86_64", - "cp34-abi3-manylinux_2_10_x86_64", - "cp34-abi3-manylinux_2_9_x86_64", - "cp34-abi3-manylinux_2_8_x86_64", - "cp34-abi3-manylinux_2_7_x86_64", - "cp34-abi3-manylinux_2_6_x86_64", - "cp34-abi3-manylinux_2_5_x86_64", - "cp34-abi3-manylinux1_x86_64", - "cp34-abi3-linux_x86_64", - "cp33-abi3-manylinux_2_28_x86_64", - "cp33-abi3-manylinux_2_27_x86_64", - "cp33-abi3-manylinux_2_26_x86_64", - "cp33-abi3-manylinux_2_25_x86_64", - "cp33-abi3-manylinux_2_24_x86_64", - "cp33-abi3-manylinux_2_23_x86_64", - "cp33-abi3-manylinux_2_22_x86_64", - "cp33-abi3-manylinux_2_21_x86_64", - "cp33-abi3-manylinux_2_20_x86_64", - "cp33-abi3-manylinux_2_19_x86_64", - "cp33-abi3-manylinux_2_18_x86_64", - "cp33-abi3-manylinux_2_17_x86_64", - "cp33-abi3-manylinux2014_x86_64", - "cp33-abi3-manylinux_2_16_x86_64", - "cp33-abi3-manylinux_2_15_x86_64", - "cp33-abi3-manylinux_2_14_x86_64", - "cp33-abi3-manylinux_2_13_x86_64", - "cp33-abi3-manylinux_2_12_x86_64", - "cp33-abi3-manylinux2010_x86_64", - "cp33-abi3-manylinux_2_11_x86_64", - "cp33-abi3-manylinux_2_10_x86_64", - "cp33-abi3-manylinux_2_9_x86_64", - "cp33-abi3-manylinux_2_8_x86_64", - "cp33-abi3-manylinux_2_7_x86_64", - "cp33-abi3-manylinux_2_6_x86_64", - "cp33-abi3-manylinux_2_5_x86_64", - "cp33-abi3-manylinux1_x86_64", - "cp33-abi3-linux_x86_64", - "cp32-abi3-manylinux_2_28_x86_64", - "cp32-abi3-manylinux_2_27_x86_64", - "cp32-abi3-manylinux_2_26_x86_64", - "cp32-abi3-manylinux_2_25_x86_64", - "cp32-abi3-manylinux_2_24_x86_64", - "cp32-abi3-manylinux_2_23_x86_64", - "cp32-abi3-manylinux_2_22_x86_64", - "cp32-abi3-manylinux_2_21_x86_64", - "cp32-abi3-manylinux_2_20_x86_64", - "cp32-abi3-manylinux_2_19_x86_64", - "cp32-abi3-manylinux_2_18_x86_64", - "cp32-abi3-manylinux_2_17_x86_64", - "cp32-abi3-manylinux2014_x86_64", - "cp32-abi3-manylinux_2_16_x86_64", - "cp32-abi3-manylinux_2_15_x86_64", - "cp32-abi3-manylinux_2_14_x86_64", - "cp32-abi3-manylinux_2_13_x86_64", - "cp32-abi3-manylinux_2_12_x86_64", - "cp32-abi3-manylinux2010_x86_64", - "cp32-abi3-manylinux_2_11_x86_64", - "cp32-abi3-manylinux_2_10_x86_64", - "cp32-abi3-manylinux_2_9_x86_64", - "cp32-abi3-manylinux_2_8_x86_64", - "cp32-abi3-manylinux_2_7_x86_64", - "cp32-abi3-manylinux_2_6_x86_64", - "cp32-abi3-manylinux_2_5_x86_64", - "cp32-abi3-manylinux1_x86_64", - "cp32-abi3-linux_x86_64", - "py312-none-manylinux_2_28_x86_64", - "py312-none-manylinux_2_27_x86_64", - "py312-none-manylinux_2_26_x86_64", - "py312-none-manylinux_2_25_x86_64", - "py312-none-manylinux_2_24_x86_64", - "py312-none-manylinux_2_23_x86_64", - "py312-none-manylinux_2_22_x86_64", - "py312-none-manylinux_2_21_x86_64", - "py312-none-manylinux_2_20_x86_64", - "py312-none-manylinux_2_19_x86_64", - "py312-none-manylinux_2_18_x86_64", - "py312-none-manylinux_2_17_x86_64", - "py312-none-manylinux2014_x86_64", - "py312-none-manylinux_2_16_x86_64", - "py312-none-manylinux_2_15_x86_64", - "py312-none-manylinux_2_14_x86_64", - "py312-none-manylinux_2_13_x86_64", - "py312-none-manylinux_2_12_x86_64", - "py312-none-manylinux2010_x86_64", - "py312-none-manylinux_2_11_x86_64", - "py312-none-manylinux_2_10_x86_64", - "py312-none-manylinux_2_9_x86_64", - "py312-none-manylinux_2_8_x86_64", - "py312-none-manylinux_2_7_x86_64", - "py312-none-manylinux_2_6_x86_64", - "py312-none-manylinux_2_5_x86_64", - "py312-none-manylinux1_x86_64", - "py312-none-linux_x86_64", - "py3-none-manylinux_2_28_x86_64", - "py3-none-manylinux_2_27_x86_64", - "py3-none-manylinux_2_26_x86_64", - "py3-none-manylinux_2_25_x86_64", - "py3-none-manylinux_2_24_x86_64", - "py3-none-manylinux_2_23_x86_64", - "py3-none-manylinux_2_22_x86_64", - "py3-none-manylinux_2_21_x86_64", - "py3-none-manylinux_2_20_x86_64", - "py3-none-manylinux_2_19_x86_64", - "py3-none-manylinux_2_18_x86_64", - "py3-none-manylinux_2_17_x86_64", - "py3-none-manylinux2014_x86_64", - "py3-none-manylinux_2_16_x86_64", - "py3-none-manylinux_2_15_x86_64", - "py3-none-manylinux_2_14_x86_64", - "py3-none-manylinux_2_13_x86_64", - "py3-none-manylinux_2_12_x86_64", - "py3-none-manylinux2010_x86_64", - "py3-none-manylinux_2_11_x86_64", - "py3-none-manylinux_2_10_x86_64", - "py3-none-manylinux_2_9_x86_64", - "py3-none-manylinux_2_8_x86_64", - "py3-none-manylinux_2_7_x86_64", - "py3-none-manylinux_2_6_x86_64", - "py3-none-manylinux_2_5_x86_64", - "py3-none-manylinux1_x86_64", - "py3-none-linux_x86_64", - "py311-none-manylinux_2_28_x86_64", - "py311-none-manylinux_2_27_x86_64", - "py311-none-manylinux_2_26_x86_64", - "py311-none-manylinux_2_25_x86_64", - "py311-none-manylinux_2_24_x86_64", - "py311-none-manylinux_2_23_x86_64", - "py311-none-manylinux_2_22_x86_64", - "py311-none-manylinux_2_21_x86_64", - "py311-none-manylinux_2_20_x86_64", - "py311-none-manylinux_2_19_x86_64", - "py311-none-manylinux_2_18_x86_64", - "py311-none-manylinux_2_17_x86_64", - "py311-none-manylinux2014_x86_64", - "py311-none-manylinux_2_16_x86_64", - "py311-none-manylinux_2_15_x86_64", - "py311-none-manylinux_2_14_x86_64", - "py311-none-manylinux_2_13_x86_64", - "py311-none-manylinux_2_12_x86_64", - "py311-none-manylinux2010_x86_64", - "py311-none-manylinux_2_11_x86_64", - "py311-none-manylinux_2_10_x86_64", - "py311-none-manylinux_2_9_x86_64", - "py311-none-manylinux_2_8_x86_64", - "py311-none-manylinux_2_7_x86_64", - "py311-none-manylinux_2_6_x86_64", - "py311-none-manylinux_2_5_x86_64", - "py311-none-manylinux1_x86_64", - "py311-none-linux_x86_64", - "py310-none-manylinux_2_28_x86_64", - "py310-none-manylinux_2_27_x86_64", - "py310-none-manylinux_2_26_x86_64", - "py310-none-manylinux_2_25_x86_64", - "py310-none-manylinux_2_24_x86_64", - "py310-none-manylinux_2_23_x86_64", - "py310-none-manylinux_2_22_x86_64", - "py310-none-manylinux_2_21_x86_64", - "py310-none-manylinux_2_20_x86_64", - "py310-none-manylinux_2_19_x86_64", - "py310-none-manylinux_2_18_x86_64", - "py310-none-manylinux_2_17_x86_64", - "py310-none-manylinux2014_x86_64", - "py310-none-manylinux_2_16_x86_64", - "py310-none-manylinux_2_15_x86_64", - "py310-none-manylinux_2_14_x86_64", - "py310-none-manylinux_2_13_x86_64", - "py310-none-manylinux_2_12_x86_64", - "py310-none-manylinux2010_x86_64", - "py310-none-manylinux_2_11_x86_64", - "py310-none-manylinux_2_10_x86_64", - "py310-none-manylinux_2_9_x86_64", - "py310-none-manylinux_2_8_x86_64", - "py310-none-manylinux_2_7_x86_64", - "py310-none-manylinux_2_6_x86_64", - "py310-none-manylinux_2_5_x86_64", - "py310-none-manylinux1_x86_64", - "py310-none-linux_x86_64", - "py39-none-manylinux_2_28_x86_64", - "py39-none-manylinux_2_27_x86_64", - "py39-none-manylinux_2_26_x86_64", - "py39-none-manylinux_2_25_x86_64", - "py39-none-manylinux_2_24_x86_64", - "py39-none-manylinux_2_23_x86_64", - "py39-none-manylinux_2_22_x86_64", - "py39-none-manylinux_2_21_x86_64", - "py39-none-manylinux_2_20_x86_64", - "py39-none-manylinux_2_19_x86_64", - "py39-none-manylinux_2_18_x86_64", - "py39-none-manylinux_2_17_x86_64", - "py39-none-manylinux2014_x86_64", - "py39-none-manylinux_2_16_x86_64", - "py39-none-manylinux_2_15_x86_64", - "py39-none-manylinux_2_14_x86_64", - "py39-none-manylinux_2_13_x86_64", - "py39-none-manylinux_2_12_x86_64", - "py39-none-manylinux2010_x86_64", - "py39-none-manylinux_2_11_x86_64", - "py39-none-manylinux_2_10_x86_64", - "py39-none-manylinux_2_9_x86_64", - "py39-none-manylinux_2_8_x86_64", - "py39-none-manylinux_2_7_x86_64", - "py39-none-manylinux_2_6_x86_64", - "py39-none-manylinux_2_5_x86_64", - "py39-none-manylinux1_x86_64", - "py39-none-linux_x86_64", - "py38-none-manylinux_2_28_x86_64", - "py38-none-manylinux_2_27_x86_64", - "py38-none-manylinux_2_26_x86_64", - "py38-none-manylinux_2_25_x86_64", - "py38-none-manylinux_2_24_x86_64", - "py38-none-manylinux_2_23_x86_64", - "py38-none-manylinux_2_22_x86_64", - "py38-none-manylinux_2_21_x86_64", - "py38-none-manylinux_2_20_x86_64", - "py38-none-manylinux_2_19_x86_64", - "py38-none-manylinux_2_18_x86_64", - "py38-none-manylinux_2_17_x86_64", - "py38-none-manylinux2014_x86_64", - "py38-none-manylinux_2_16_x86_64", - "py38-none-manylinux_2_15_x86_64", - "py38-none-manylinux_2_14_x86_64", - "py38-none-manylinux_2_13_x86_64", - "py38-none-manylinux_2_12_x86_64", - "py38-none-manylinux2010_x86_64", - "py38-none-manylinux_2_11_x86_64", - "py38-none-manylinux_2_10_x86_64", - "py38-none-manylinux_2_9_x86_64", - "py38-none-manylinux_2_8_x86_64", - "py38-none-manylinux_2_7_x86_64", - "py38-none-manylinux_2_6_x86_64", - "py38-none-manylinux_2_5_x86_64", - "py38-none-manylinux1_x86_64", - "py38-none-linux_x86_64", - "py37-none-manylinux_2_28_x86_64", - "py37-none-manylinux_2_27_x86_64", - "py37-none-manylinux_2_26_x86_64", - "py37-none-manylinux_2_25_x86_64", - "py37-none-manylinux_2_24_x86_64", - "py37-none-manylinux_2_23_x86_64", - "py37-none-manylinux_2_22_x86_64", - "py37-none-manylinux_2_21_x86_64", - "py37-none-manylinux_2_20_x86_64", - "py37-none-manylinux_2_19_x86_64", - "py37-none-manylinux_2_18_x86_64", - "py37-none-manylinux_2_17_x86_64", - "py37-none-manylinux2014_x86_64", - "py37-none-manylinux_2_16_x86_64", - "py37-none-manylinux_2_15_x86_64", - "py37-none-manylinux_2_14_x86_64", - "py37-none-manylinux_2_13_x86_64", - "py37-none-manylinux_2_12_x86_64", - "py37-none-manylinux2010_x86_64", - "py37-none-manylinux_2_11_x86_64", - "py37-none-manylinux_2_10_x86_64", - "py37-none-manylinux_2_9_x86_64", - "py37-none-manylinux_2_8_x86_64", - "py37-none-manylinux_2_7_x86_64", - "py37-none-manylinux_2_6_x86_64", - "py37-none-manylinux_2_5_x86_64", - "py37-none-manylinux1_x86_64", - "py37-none-linux_x86_64", - "py36-none-manylinux_2_28_x86_64", - "py36-none-manylinux_2_27_x86_64", - "py36-none-manylinux_2_26_x86_64", - "py36-none-manylinux_2_25_x86_64", - "py36-none-manylinux_2_24_x86_64", - "py36-none-manylinux_2_23_x86_64", - "py36-none-manylinux_2_22_x86_64", - "py36-none-manylinux_2_21_x86_64", - "py36-none-manylinux_2_20_x86_64", - "py36-none-manylinux_2_19_x86_64", - "py36-none-manylinux_2_18_x86_64", - "py36-none-manylinux_2_17_x86_64", - "py36-none-manylinux2014_x86_64", - "py36-none-manylinux_2_16_x86_64", - "py36-none-manylinux_2_15_x86_64", - "py36-none-manylinux_2_14_x86_64", - "py36-none-manylinux_2_13_x86_64", - "py36-none-manylinux_2_12_x86_64", - "py36-none-manylinux2010_x86_64", - "py36-none-manylinux_2_11_x86_64", - "py36-none-manylinux_2_10_x86_64", - "py36-none-manylinux_2_9_x86_64", - "py36-none-manylinux_2_8_x86_64", - "py36-none-manylinux_2_7_x86_64", - "py36-none-manylinux_2_6_x86_64", - "py36-none-manylinux_2_5_x86_64", - "py36-none-manylinux1_x86_64", - "py36-none-linux_x86_64", - "py35-none-manylinux_2_28_x86_64", - "py35-none-manylinux_2_27_x86_64", - "py35-none-manylinux_2_26_x86_64", - "py35-none-manylinux_2_25_x86_64", - "py35-none-manylinux_2_24_x86_64", - "py35-none-manylinux_2_23_x86_64", - "py35-none-manylinux_2_22_x86_64", - "py35-none-manylinux_2_21_x86_64", - "py35-none-manylinux_2_20_x86_64", - "py35-none-manylinux_2_19_x86_64", - "py35-none-manylinux_2_18_x86_64", - "py35-none-manylinux_2_17_x86_64", - "py35-none-manylinux2014_x86_64", - "py35-none-manylinux_2_16_x86_64", - "py35-none-manylinux_2_15_x86_64", - "py35-none-manylinux_2_14_x86_64", - "py35-none-manylinux_2_13_x86_64", - "py35-none-manylinux_2_12_x86_64", - "py35-none-manylinux2010_x86_64", - "py35-none-manylinux_2_11_x86_64", - "py35-none-manylinux_2_10_x86_64", - "py35-none-manylinux_2_9_x86_64", - "py35-none-manylinux_2_8_x86_64", - "py35-none-manylinux_2_7_x86_64", - "py35-none-manylinux_2_6_x86_64", - "py35-none-manylinux_2_5_x86_64", - "py35-none-manylinux1_x86_64", - "py35-none-linux_x86_64", - "py34-none-manylinux_2_28_x86_64", - "py34-none-manylinux_2_27_x86_64", - "py34-none-manylinux_2_26_x86_64", - "py34-none-manylinux_2_25_x86_64", - "py34-none-manylinux_2_24_x86_64", - "py34-none-manylinux_2_23_x86_64", - "py34-none-manylinux_2_22_x86_64", - "py34-none-manylinux_2_21_x86_64", - "py34-none-manylinux_2_20_x86_64", - "py34-none-manylinux_2_19_x86_64", - "py34-none-manylinux_2_18_x86_64", - "py34-none-manylinux_2_17_x86_64", - "py34-none-manylinux2014_x86_64", - "py34-none-manylinux_2_16_x86_64", - "py34-none-manylinux_2_15_x86_64", - "py34-none-manylinux_2_14_x86_64", - "py34-none-manylinux_2_13_x86_64", - "py34-none-manylinux_2_12_x86_64", - "py34-none-manylinux2010_x86_64", - "py34-none-manylinux_2_11_x86_64", - "py34-none-manylinux_2_10_x86_64", - "py34-none-manylinux_2_9_x86_64", - "py34-none-manylinux_2_8_x86_64", - "py34-none-manylinux_2_7_x86_64", - "py34-none-manylinux_2_6_x86_64", - "py34-none-manylinux_2_5_x86_64", - "py34-none-manylinux1_x86_64", - "py34-none-linux_x86_64", - "py33-none-manylinux_2_28_x86_64", - "py33-none-manylinux_2_27_x86_64", - "py33-none-manylinux_2_26_x86_64", - "py33-none-manylinux_2_25_x86_64", - "py33-none-manylinux_2_24_x86_64", - "py33-none-manylinux_2_23_x86_64", - "py33-none-manylinux_2_22_x86_64", - "py33-none-manylinux_2_21_x86_64", - "py33-none-manylinux_2_20_x86_64", - "py33-none-manylinux_2_19_x86_64", - "py33-none-manylinux_2_18_x86_64", - "py33-none-manylinux_2_17_x86_64", - "py33-none-manylinux2014_x86_64", - "py33-none-manylinux_2_16_x86_64", - "py33-none-manylinux_2_15_x86_64", - "py33-none-manylinux_2_14_x86_64", - "py33-none-manylinux_2_13_x86_64", - "py33-none-manylinux_2_12_x86_64", - "py33-none-manylinux2010_x86_64", - "py33-none-manylinux_2_11_x86_64", - "py33-none-manylinux_2_10_x86_64", - "py33-none-manylinux_2_9_x86_64", - "py33-none-manylinux_2_8_x86_64", - "py33-none-manylinux_2_7_x86_64", - "py33-none-manylinux_2_6_x86_64", - "py33-none-manylinux_2_5_x86_64", - "py33-none-manylinux1_x86_64", - "py33-none-linux_x86_64", - "py32-none-manylinux_2_28_x86_64", - "py32-none-manylinux_2_27_x86_64", - "py32-none-manylinux_2_26_x86_64", - "py32-none-manylinux_2_25_x86_64", - "py32-none-manylinux_2_24_x86_64", - "py32-none-manylinux_2_23_x86_64", - "py32-none-manylinux_2_22_x86_64", - "py32-none-manylinux_2_21_x86_64", - "py32-none-manylinux_2_20_x86_64", - "py32-none-manylinux_2_19_x86_64", - "py32-none-manylinux_2_18_x86_64", - "py32-none-manylinux_2_17_x86_64", - "py32-none-manylinux2014_x86_64", - "py32-none-manylinux_2_16_x86_64", - "py32-none-manylinux_2_15_x86_64", - "py32-none-manylinux_2_14_x86_64", - "py32-none-manylinux_2_13_x86_64", - "py32-none-manylinux_2_12_x86_64", - "py32-none-manylinux2010_x86_64", - "py32-none-manylinux_2_11_x86_64", - "py32-none-manylinux_2_10_x86_64", - "py32-none-manylinux_2_9_x86_64", - "py32-none-manylinux_2_8_x86_64", - "py32-none-manylinux_2_7_x86_64", - "py32-none-manylinux_2_6_x86_64", - "py32-none-manylinux_2_5_x86_64", - "py32-none-manylinux1_x86_64", - "py32-none-linux_x86_64", - "py31-none-manylinux_2_28_x86_64", - "py31-none-manylinux_2_27_x86_64", - "py31-none-manylinux_2_26_x86_64", - "py31-none-manylinux_2_25_x86_64", - "py31-none-manylinux_2_24_x86_64", - "py31-none-manylinux_2_23_x86_64", - "py31-none-manylinux_2_22_x86_64", - "py31-none-manylinux_2_21_x86_64", - "py31-none-manylinux_2_20_x86_64", - "py31-none-manylinux_2_19_x86_64", - "py31-none-manylinux_2_18_x86_64", - "py31-none-manylinux_2_17_x86_64", - "py31-none-manylinux2014_x86_64", - "py31-none-manylinux_2_16_x86_64", - "py31-none-manylinux_2_15_x86_64", - "py31-none-manylinux_2_14_x86_64", - "py31-none-manylinux_2_13_x86_64", - "py31-none-manylinux_2_12_x86_64", - "py31-none-manylinux2010_x86_64", - "py31-none-manylinux_2_11_x86_64", - "py31-none-manylinux_2_10_x86_64", - "py31-none-manylinux_2_9_x86_64", - "py31-none-manylinux_2_8_x86_64", - "py31-none-manylinux_2_7_x86_64", - "py31-none-manylinux_2_6_x86_64", - "py31-none-manylinux_2_5_x86_64", - "py31-none-manylinux1_x86_64", - "py31-none-linux_x86_64", - "py30-none-manylinux_2_28_x86_64", - "py30-none-manylinux_2_27_x86_64", - "py30-none-manylinux_2_26_x86_64", - "py30-none-manylinux_2_25_x86_64", - "py30-none-manylinux_2_24_x86_64", - "py30-none-manylinux_2_23_x86_64", - "py30-none-manylinux_2_22_x86_64", - "py30-none-manylinux_2_21_x86_64", - "py30-none-manylinux_2_20_x86_64", - "py30-none-manylinux_2_19_x86_64", - "py30-none-manylinux_2_18_x86_64", - "py30-none-manylinux_2_17_x86_64", - "py30-none-manylinux2014_x86_64", - "py30-none-manylinux_2_16_x86_64", - "py30-none-manylinux_2_15_x86_64", - "py30-none-manylinux_2_14_x86_64", - "py30-none-manylinux_2_13_x86_64", - "py30-none-manylinux_2_12_x86_64", - "py30-none-manylinux2010_x86_64", - "py30-none-manylinux_2_11_x86_64", - "py30-none-manylinux_2_10_x86_64", - "py30-none-manylinux_2_9_x86_64", - "py30-none-manylinux_2_8_x86_64", - "py30-none-manylinux_2_7_x86_64", - "py30-none-manylinux_2_6_x86_64", - "py30-none-manylinux_2_5_x86_64", - "py30-none-manylinux1_x86_64", - "py30-none-linux_x86_64", - "cp312-none-any", - "py312-none-any", - "py3-none-any", - "py311-none-any", - "py310-none-any", - "py39-none-any", - "py38-none-any", - "py37-none-any", - "py36-none-any", - "py35-none-any", - "py34-none-any", - "py33-none-any", - "py32-none-any", - "py31-none-any", - "py30-none-any" - ], - "marker_environment": { - "implementation_name": "cpython", - "implementation_version": "3.12.10", - "os_name": "posix", - "platform_machine": "x86_64", - "platform_python_implementation": "CPython", - "platform_release": "6.10.14-linuxkit", - "platform_system": "Linux", - "platform_version": "#1 SMP Tue Apr 15 16:00:54 UTC 2025", - "python_full_version": "3.12.10", - "python_version": "3.12", - "sys_platform": "linux" - } -} diff --git a/scripts/release.py b/scripts/release.py index 00ef31b5..ddb82130 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -49,40 +49,54 @@ def error(msg): @app.command() -def run_tests(): +def run_tests(version_tag: str): info("Running tests") + os.environ["TEST_DAGSTER_VERSION"] = version_tag subprocess.run(["pytest", "tests", "-s"], check=True) @app.command(help="Build dagster-cloud-action docker image from dagster-cloud.pex") -def build_docker_action(version_tag: str, publish_docker_action: bool = True): - image_name = get_docker_action_image_name(version_tag) +def build_docker_action( + version_tag: str, image_name: str, platform: str, publish_docker_action: bool = True +): info(f"Building {image_name}") + + target_arch = "aarch64" if platform == "linux/arm64" else "x86_64" + with chdir("."): - output = subprocess.check_output( + subprocess.run( [ "docker", "build", ".", "-f", "src/Dockerfile", + "--platform", + platform, "-t", image_name, + "--build-arg", + f"TARGET_ARCH={target_arch}", + "--build-arg", + f"DAGSTER_VERSION={version_tag}", + "--progress=plain", ], encoding="utf-8", + check=True, ) - print(output) if publish_docker_action: info(f"Publishing {image_name}") - output = subprocess.check_output( + subprocess.run( [ "docker", "push", image_name, + "--platform", + platform, ], encoding="utf-8", + check=True, ) - print(output) @app.command(help="Build dagster-cloud.pex - invoked by the dagster-cloud-pex-builder image") @@ -114,7 +128,6 @@ def build_dagster_cloud_pex( "x86_64_310.json", # ubuntu-22.04 action runner "x86_64_312.json", # ubuntu-24.04 action runner "aarch64_312.json", # ubuntu-24.04-arm action runner - "manylinux_2_28_x86_64.json", # used by the distributed Dockerfile }: with open(os.path.join(os.path.dirname(__file__), "complete_platforms", json_file)) as f: complete_platform = f.read() @@ -234,9 +247,20 @@ def create_rc( update_dagster_cloud_pex(dagster_oss_branch, dagster_oss_version) if execute_tests: - run_tests() - build_docker_action(version_tag, publish_docker_action) + run_tests(version_tag) + build_docker_action( + version_tag=version_tag, + image_name=get_docker_action_image_name(version_tag), + platform="linux/amd64", + publish_docker_action=publish_docker_action, + ) update_docker_action_references(version_tag) + build_docker_action( + version_tag=version_tag, + image_name=get_docker_action_image_name(version_tag, platform_suffix="arm64"), + platform="linux/arm64", + publish_docker_action=publish_docker_action, + ) info(f"Updated working directory for {version_tag}") @@ -263,8 +287,8 @@ def get_branch_name(): return proc.stdout.decode("utf-8").strip() -def get_docker_action_image_name(version_tag: str) -> str: - return f"ghcr.io/dagster-io/dagster-cloud-action:{version_tag}" +def get_docker_action_image_name(version_tag: str, platform_suffix: Optional[str] = None) -> str: + return f"ghcr.io/dagster-io/dagster-cloud-action:{f'{platform_suffix}-' if platform_suffix else ''}{version_tag}" if __name__ == "__main__": diff --git a/src/Dockerfile b/src/Dockerfile index a9a047da..22811e55 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -1,23 +1,21 @@ # Use an official manylinux builder (https://github.com/pypa/manylinux#docker-images) -FROM --platform=linux/amd64 quay.io/pypa/manylinux_2_28_x86_64:latest -# Install deps -RUN yum update -y & yum install -y git -RUN /opt/python/cp311-cp311/bin/python -m pip install pex +ARG TARGET_ARCH -# RUN /opt/python/cp38-cp38/bin/python -m pip install dagster-cloud-cli -RUN /opt/python/cp39-cp39/bin/python -m pip install dagster-cloud-cli -RUN /opt/python/cp310-cp310/bin/python -m pip install dagster-cloud-cli -RUN /opt/python/cp311-cp311/bin/python -m pip install dagster-cloud-cli -RUN /opt/python/cp312-cp312/bin/python -m pip install dagster-cloud-cli +FROM quay.io/pypa/manylinux_2_28_${TARGET_ARCH}:latest -# Create virtual environment using PEX -COPY generated/gha/dagster-cloud.pex /dagster-cloud.pex -RUN PEX_TOOLS=1 /opt/python/cp312-cp312/bin/python /dagster-cloud.pex venv /venv-dagster-cloud +ARG DAGSTER_VERSION -# Add all the relevant Python binaries to the PATH -ENV PATH="/venv-dagster-cloud/bin:/opt/python/cp39-cp39/bin:/opt/python/cp310-cp310/bin:/opt/python/cp311-cp311/bin:/opt/python/cp312-cp312/bin:$PATH" +# Install deps +RUN yum update -y && yum install -y git +RUN /opt/python/cp39-cp39/bin/python -m pip install dagster==${DAGSTER_VERSION} dagster-cloud-cli +RUN /opt/python/cp310-cp310/bin/python -m pip install dagster==${DAGSTER_VERSION} dagster-cloud-cli +RUN /opt/python/cp311-cp311/bin/python -m pip install dagster==${DAGSTER_VERSION} dagster-cloud-cli +RUN /opt/python/cp312-cp312/bin/python -m pip install dagster==${DAGSTER_VERSION} dagster-cloud-cli PyGithub 'pex>=2.1.132,<3' + +# Add all the relevant Python binaries to the PATH +ENV PATH="/opt/python/cp312-cp312/bin:/opt/python/cp311-cp311/bin:/opt/python/cp310-cp310/bin:/opt/python/cp39-cp39/bin:$PATH" # Copy all src scripts @@ -44,5 +42,4 @@ COPY src/get_branch_deployment.sh /get_branch_deployment.sh # Gitlab scripts COPY src/gitlab_action gitlab_action -# Use the venv python as the command -CMD venv-dagster-cloud/bin/python3 \ No newline at end of file +CMD /opt/python/cp312-cp312/bin/python \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index fb960d5d..5a8809d7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -181,6 +181,10 @@ def action_docker_image_id(repo_root): "--load", "--iidfile", iidfile, + "--build-arg", + "TARGET_ARCH=x86_64", + "--build-arg", + f"DAGSTER_VERSION={os.environ['TEST_DAGSTER_VERSION']}", ], cwd=repo_root, check=True, @@ -254,11 +258,16 @@ def requests_put(url, data): response.status_code = 200 return response - with mock.patch( - "dagster_cloud_cli.core.pex_builder.pex_registry.get_s3_urls_for_get", - s3_urls_for_get, - ) as _, mock.patch( - "dagster_cloud_cli.core.pex_builder.pex_registry.get_s3_urls_for_put", - s3_urls_for_put, - ) as _, mock.patch("requests.get", requests_get) as _, mock.patch("requests.put", requests_put): + with ( + mock.patch( + "dagster_cloud_cli.core.pex_builder.pex_registry.get_s3_urls_for_get", + s3_urls_for_get, + ) as _, + mock.patch( + "dagster_cloud_cli.core.pex_builder.pex_registry.get_s3_urls_for_put", + s3_urls_for_put, + ) as _, + mock.patch("requests.get", requests_get) as _, + mock.patch("requests.put", requests_put), + ): yield s3_objects