From b932cf1179b263b7c4404d9ea30b7138b0d00862 Mon Sep 17 00:00:00 2001 From: Eduardo Apolinario <653394+eapolinario@users.noreply.github.com> Date: Thu, 12 Oct 2023 14:07:15 -0700 Subject: [PATCH] Add gh workflow to publish flyteidl release to PyPI and npm (#4211) Signed-off-by: Eduardo Apolinario Co-authored-by: Eduardo Apolinario --- .github/workflows/flyteidl-release.yml | 51 ++++++++++++++++++++++++++ script/release.sh | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/flyteidl-release.yml diff --git a/.github/workflows/flyteidl-release.yml b/.github/workflows/flyteidl-release.yml new file mode 100644 index 0000000000..ea8a7899fa --- /dev/null +++ b/.github/workflows/flyteidl-release.yml @@ -0,0 +1,51 @@ +name: Upload flyteidl to PyPI and npm + +on: + release: + types: [created] + +jobs: + deploy: + runs-on: ubuntu-latest + defaults: + run: + working-directory: flyteidl + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: "3.x" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Autobump version + run: | + # from refs/tags/v1.2.3 get 1.2.3 + VERSION=$(echo $GITHUB_REF | sed 's#.*/v##') + VERSION=$VERSION make -C flyteidl update_pyversion + shell: bash + - name: Build and publish + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + python setup.py sdist bdist_wheel + twine upload dist/* + - uses: actions/setup-node@v1 + with: + node-version: "12.x" + registry-url: "https://registry.npmjs.org" + - name: Autobump version + run: | + # from refs/tags/v1.2.3 get 1.2.3 + VERSION=$(echo $GITHUB_REF | sed 's#.*/v##') + VERSION=$VERSION make update_npmversion + shell: bash + - run: | + npm install + - run: | + npm publish --access=public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/script/release.sh b/script/release.sh index 14bec2a54f..190ecbc8f1 100755 --- a/script/release.sh +++ b/script/release.sh @@ -6,7 +6,7 @@ set -ex # TODO(monorepo): This only works if we have at least one component tag per release. # In other words, if we have two consecutive releases the latest tag in the second release is going to point to an invalid # tag (because there will not be images tagged with the previous release tag). -LATEST_TAG=$(git tag | sed 's#[^/]*/##' | sort | tail -n 1) +LATEST_TAG=$(git tag | sed 's#[^/]*/##' | sort --version-sort | tail -n1) FLYTEKIT_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flytekit/releases/latest" | jq -r .tag_name | sed 's/^v//') FLYTECONSOLE_TAG=$(curl --silent "https://api.github.com/repos/flyteorg/flyteconsole/releases/latest" | jq -r .tag_name)