1616 type : boolean
1717 required : true
1818 default : false
19+ description : Go integration tests
1920
2021env :
2122 BUILD_INCREMENT : 150
22- PIP_DISABLE_PIP_VERSION_CHECK : on
23- PIP_DEFAULT_TIMEOUT : 10
24- PIP_PROGRESS_BAR : off
2523
2624jobs :
2725 compute-version :
@@ -39,81 +37,33 @@ jobs:
3937 with :
4038 version : ${{ needs.compute-version.outputs.version }}
4139 staging : true
42- go-integration-tests : ${{ github.event_name == 'workflow_dispatch' && inputs.go-integration-tests || true }}
43-
44- upload-artifacts :
40+ # TODO: run integration tests on every 'push' event
41+ # once they are fixed: https://github.com/dstackai/dstack/issues/3005
42+ go-integration-tests : ${{ github.event_name == 'workflow_dispatch' && inputs.go-integration-tests }}
43+
44+ upload-pre-pypi-artifacts :
4545 needs : [compute-version, build-artifacts]
46- # Skip for PRs from forks, where AWS credentials are not available
46+ # Skip for PRs from forks, where AWS S3 credentials are not available
4747 if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
48- runs-on : ubuntu-latest
49- env :
50- AWS_ACCESS_KEY_ID : ${{ secrets.AWS_ACCESS_KEY_ID }}
51- AWS_SECRET_ACCESS_KEY : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
52- steps :
53- - uses : astral-sh/setup-uv@v5
54- with :
55- python-version : 3.11
56- - name : Install AWS
57- run : uv tool install awscli
58- - name : Download dstack-gateway
59- uses : actions/download-artifact@v4
60- with :
61- name : dstack-gateway
62- path : gateway
63- - name : Upload dstack-gateway to S3
64- working-directory : gateway
65- run : |
66- pwd
67- ls -a
68- ls -a ..
69- WHEEL=dstack_gateway-${{ needs.compute-version.outputs.version }}-py3-none-any.whl
70- aws s3 cp $WHEEL "s3://dstack-gateway-downloads/stgn/$WHEEL"
71- echo "${{ needs.compute-version.outputs.version }}" | aws s3 cp - "s3://dstack-gateway-downloads/stgn/latest-version"
72- - name : Download dstack-runner
73- uses : actions/download-artifact@v4
74- with :
75- pattern : dstack-runner-*
76- merge-multiple : true
77- path : runner
78- - name : Upload dstack-runner to S3
79- working-directory : runner
80- run : |
81- aws s3 cp . "s3://dstack-runner-downloads-stgn/${{ needs.compute-version.outputs.version }}/binaries/" --recursive --exclude "*" --include "dstack-*" --acl public-read
82- aws s3 cp . "s3://dstack-runner-downloads-stgn/latest/binaries/" --recursive --exclude "*" --include "dstack-*" --acl public-read
83- - name : Download JSON schemas
84- uses : actions/download-artifact@v4
85- with :
86- name : json-schemas
87- path : json-schemas
88- - name : Upload JSON schemas to S3
89- working-directory : json-schemas
90- run : |
91- aws s3 cp configuration.json "s3://dstack-runner-downloads-stgn/${{ needs.compute-version.outputs.version }}/schemas/configuration.json" --acl public-read
92- aws s3 cp configuration.json "s3://dstack-runner-downloads-stgn/latest/schemas/configuration.json" --acl public-read
93- aws s3 cp profiles.json "s3://dstack-runner-downloads-stgn/${{ needs.compute-version.outputs.version }}/schemas/profiles.json" --acl public-read
94- aws s3 cp profiles.json "s3://dstack-runner-downloads-stgn/latest/schemas/profiles.json" --acl public-read
95- - name : Set latest version in S3
96- run : |
97- echo ${{ needs.compute-version.outputs.version }} | aws s3 cp - s3://get-dstack/stgn-cli/latest-version --acl public-read
48+ uses : ./.github/workflows/upload-pre-pypi-artifacts.yml
49+ with :
50+ version : ${{ needs.compute-version.outputs.version }}
51+ staging : true
52+ secrets : inherit
53+
54+ upload-post-pypi-artifacts :
55+ needs : [compute-version, build-artifacts]
56+ # Skip for PRs from forks, where AWS S3 credentials are not available
57+ if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
58+ uses : ./.github/workflows/upload-post-pypi-artifacts.yml
59+ with :
60+ version : ${{ needs.compute-version.outputs.version }}
61+ is-latest-version : true
62+ staging : true
63+ secrets : inherit
9864
99- docs- build :
100- # Skip for PRs from forks since mkdocs-material-insiders is not available in forks
65+ build-docs :
66+ # Skip for PRs from forks, where mkdocs-material-insiders is not available
10167 if : github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
102- runs-on : ubuntu-latest
103- steps :
104- - uses : actions/checkout@v4
105- - uses : astral-sh/setup-uv@v5
106- with :
107- python-version : 3.11
108- - name : Install dstack
109- run : |
110- uv pip install examples/plugins/example_plugin_server
111- uv pip install -e '.[server]'
112- # Move these deps into an extra and install that way
113- - name : Build
114- run : |
115- uv pip install pillow cairosvg
116- sudo apt-get update && sudo apt-get install -y libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev
117- uv pip install mkdocs-material "mkdocs-material[imaging]" mkdocs-material-extensions mkdocs-redirects mkdocs-gen-files "mkdocstrings[python]" mkdocs-render-swagger-plugin --upgrade
118- uv pip install git+https://${{ secrets.GH_TOKEN }}@github.com/squidfunk/mkdocs-material-insiders.git
119- uv run mkdocs build -s
68+ uses : ./.github/workflows/build-docs.yml
69+ secrets : inherit
0 commit comments