-
Notifications
You must be signed in to change notification settings - Fork 5
144 lines (113 loc) · 3.58 KB
/
on_release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: On release
on:
release:
types: [prereleased, released]
env:
PYTHON_VERSION: "3.10"
jobs:
release_test:
name: Run checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- uses: Gr1N/setup-poetry@v9
- run: poetry install
build:
needs: [release_test]
name: Build the release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- uses: Gr1N/setup-poetry@v9
- name: Get git release tag
run: echo "::set-output name=git-release-tag::ray-on-golem $(git describe --tags)"
id: git_describe
- name: Get package version
run: echo "::set-output name=poetry-version::$(poetry version)"
id: poetry_version
- name: Fail on version mismatch
run: exit 1
if:
${{ steps.git_describe.outputs.git-release-tag !=
steps.poetry_version.outputs.poetry-version }}
- name: Build the release
run: poetry build
- name: Store the built package
uses: actions/upload-artifact@v3
with:
name: dist
path: dist
build_test_image:
name: Build Test VM Image
needs: [build]
if: ${{ github.event.action == 'prereleased' }}
uses: ./.github/workflows/build_image.yml
with:
IS_TEST_BUILD: true
IMAGE_PYTHON_VERSION: ${{ vars.PYTHON_VERSION }}
REGISTRY_REPOSITORY: ${{ vars.REGISTRY_TEST_REPOSITORY }}
secrets:
REGISTRY_USER: ${{ secrets.REGISTRY_TEST_USER }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TEST_TOKEN }}
smoke_tests:
name: Run Smoke Tests
needs: [build_test_image]
if: ${{ github.event.action == 'prereleased' }}
uses: ./.github/workflows/smoke_tests.yml
build_image:
name: Build VM Image
needs: [build]
if: ${{ github.event.action == 'released' }}
uses: ./.github/workflows/build_image.yml
with:
IS_TEST_BUILD: false
IMAGE_PYTHON_VERSION: ${{ vars.PYTHON_VERSION }}
REGISTRY_REPOSITORY: ${{ vars.REGISTRY_REPOSITORY }}
secrets:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
test_publish:
needs: [build_test_image]
name: Publish the release to test.pypi
runs-on: ubuntu-latest
if: ${{ github.event.action == 'prereleased' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- uses: Gr1N/setup-poetry@v8
- name: Retrieve the built package
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Publish to test pypi
run: |
poetry config repositories.testpypi https://test.pypi.org/legacy/
poetry publish -r testpypi -u __token__ -p ${{ secrets.TESTPYPI_TOKEN }}
publish:
needs: [build_image]
name: Publish the release
runs-on: ubuntu-latest
if: ${{ github.event.action == 'released' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- uses: Gr1N/setup-poetry@v8
- name: Retrieve the built package
uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Publish to pypi
run: |
poetry publish -u __token__ -p ${{ secrets.PYPI_TOKEN }}