Skip to content

Commit

Permalink
test new workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Davidham3 committed Dec 21, 2024
1 parent b7a40c1 commit 32c3cc8
Show file tree
Hide file tree
Showing 6 changed files with 251 additions and 102 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: Building docs
name: Build Latest Docs

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_run:
workflows: ["Test TrajDL on branch main"]
types:
- completed

jobs:
build:
Expand All @@ -18,22 +18,25 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Install build-essential and make
run: |
sudo apt-get update
sudo apt-get install -y build-essential ca-certificates curl libffi-dev libgdbm-dev libncurses5-dev libnss3-dev libreadline-dev libssl-dev make time wget zlib1g-dev
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Install PyTorch and dependencies from pyproject.toml
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ github.ref_name }}-${{ github.sha }}-${{ matrix.python-version }}
path: dist
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.PAT_FOR_ARTIFACTS }}

- name: Install TrajDL
run: |
python -m pip install --upgrade pip
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python -m pip install .[dev,docs]
python -m pip install "dist/trajdl-0.1.0-cp312-cp312-linux_x86_64.whl[docs]"
- name: Cache datasets
id: cache-datasets
Expand All @@ -42,13 +45,6 @@ jobs:
path: ~/.cache/trajdl
key: trajdl-cache-datasets

- name: Test with pytest
run: |
autoflake -j 0 --remove-all-unused-imports --in-place --recursive --ignore-init-module-imports .
isort -j -1 .
black .
pytest -s
- name: Build docs
run: |
cd docs && make -j 4 html && cd ..
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/build_docs_vtag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Build v Docs and Publish

on:
workflow_run:
workflows: ["Test TrajDL on tag v"]
types:
- completed

jobs:
build:
runs-on: ubuntu-latest

environment:
name: testpypi
url: https://test.pypi.org/p/trajdl

permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore

strategy:
fail-fast: false
matrix:
python-version: ["3.12"]

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
name: dist-${{ github.event.workflow_run.head_branch }}-${{ github.sha }}
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.PAT_FOR_ARTIFACTS }}

- name: Sign the dists with Sigstore
uses: sigstore/[email protected]
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.PAT_FOR_RELEASE }}
run: >-
gh release create
'${{ github.event.workflow_run.head_branch }}'
--repo '${{ github.repository }}'
--notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.PAT_FOR_RELEASE }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release upload
'${{ github.event.workflow_run.head_branch }}' dist/**
--repo '${{ github.repository }}'
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
packages_dir: dist/
skip_existing: true
127 changes: 127 additions & 0 deletions .github/workflows/build_wheels_for_vtag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Test TrajDL on tag v

on:
push:
tags:
- 'v*'

jobs:
build_wheels:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v4

- uses: pypa/[email protected]

- name: Check wheels
run: |
ls wheelhouse
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ github.ref_name }}-${{ github.sha }}-wheel
path: wheelhouse/*.whl
retention-days: 1
overwrite: true

test_wheels_and_build_sdist:
needs: [build_wheels]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Download all artifacts
uses: actions/download-artifact@v4
with:
name: dist-${{ github.ref_name }}-${{ github.sha }}-wheel
path: dist
github-token: ${{ secrets.PAT_FOR_ARTIFACTS }}

- name: Install TrajDL
run: |
python -m pip install --upgrade pip
python -m pip install torch --index-url https://download.pytorch.org/whl/cpu
PYTHON_VERSION=${{ matrix.python-version }}
PYTHON_VERSION_NO_DOT="${PYTHON_VERSION/./}"
python -m pip install "dist/trajdl-0.1.0-cp${PYTHON_VERSION_NO_DOT}-cp${PYTHON_VERSION_NO_DOT}-manylinux_2_17_x86_64.manylinux2014_x86_64.whl[dev,docs]"
- name: Cache datasets
id: cache-datasets
uses: actions/cache@v3
with:
path: ~/.cache/trajdl
key: trajdl-cache-datasets

- name: Test with pytest
run: |
pytest -s
- name: Build docs
if: matrix.python-version == '3.12'
run: |
cd docs && make -j 4 html && cd ..
- name: Get branch name
if: matrix.python-version == '3.12'
id: branch-name
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT

- name: Checkout documentation repository
if: matrix.python-version == '3.12'
uses: actions/checkout@v3
with:
repository: Spatial-Temporal-Data-Mining/TrajDL-docs
token: ${{ secrets.PAT_FOR_DOCS }}
path: docs-repo
fetch-depth: 0 # 获取所有分支信息

- name: Deploy to documentation repository
if: matrix.python-version == '3.12'
run: |
cd docs-repo
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git checkout -b ${{ github.ref_name }} || git checkout ${{ github.ref_name }}
# 复制文档
rm -rf * # 清空当前分支内容
cp -r ../docs/build/html/ .
cp ../.readthedocs.yaml .
# 提交更改
git add .
git commit -m "Update documentation from source repository" || echo "No changes to commit"
git push origin ${{ github.ref_name }}
cd ..
- name: Build SDist
if: matrix.python-version == '3.12'
run: |
python -m build --sdist
- name: Upload artifacts
if: matrix.python-version == '3.12'
uses: actions/upload-artifact@v4
with:
name: dist-${{ github.ref_name }}-${{ github.sha }}
path: dist/
retention-days: 1
overwrite: true
75 changes: 0 additions & 75 deletions .github/workflows/python-publish.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python package
name: Test TrajDL on branch main

on:
push:
branches: [ "main" ]
branches:
- main
pull_request:
branches: [ "main" ]
branches:
- main

jobs:
build:
Expand Down Expand Up @@ -51,3 +50,18 @@ jobs:
isort -j -1 .
black .
pytest -s
- name: Build package
run: |
if [ "${{ matrix.python-version }}" = "3.12" ]; then
python -m build
fi
- name: Upload artifacts
if: matrix.python-version == '3.12'
uses: actions/upload-artifact@v4
with:
name: dist-${{ github.ref_name }}-${{ github.sha }}-${{ matrix.python-version }}
path: dist/
retention-days: 1
overwrite: true
Loading

0 comments on commit 32c3cc8

Please sign in to comment.