--- a +++ b/.github/workflows/release.yaml @@ -0,0 +1,112 @@ +name: CI +on: + push: + pull_request: + # branches: + # - main + +jobs: + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: psf/black@stable + lint: + name: Lint with flake8 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install flake8 + run: pip install flake8 flake8-bugbear + - name: Lint with flake8 + run: flake8 src + run-tutorial: + name: Run tutorial - random_small + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install dependencies + run: pip install . + - name: Prepare tutorial data + run: | + cd tutorial + move-dl data=random_small task=encode_data --cfg job + move-dl data=random_small task=encode_data + - name: Train model and analyze latent space + run: | + cd tutorial + move-dl data=random_small task=random_small__latent --cfg job + move-dl data=random_small task=random_small__latent + - name: Identify associations - t-test + run: | + cd tutorial + move-dl data=random_small task=random_small__id_assoc_ttest --cfg job + move-dl data=random_small task=random_small__id_assoc_ttest task.training_loop.num_epochs=30 task.num_refits=4 + - name: Identify associations - bayes factors + run: | + cd tutorial + move-dl data=random_small task=random_small__id_assoc_bayes --cfg job + move-dl data=random_small task=random_small__id_assoc_bayes task.training_loop.num_epochs=30 task.num_refits=20 + run-tutorial-cont: + name: Run tutorial - random_continuous + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install dependencies + run: pip install . + - name: Prepare tutorial data + run: | + cd tutorial + move-dl data=random_continuous task=encode_data + - name: Train model and analyze latent space + run: | + cd tutorial + move-dl data=random_continuous task=random_continuous__latent --cfg job + move-dl data=random_continuous task=random_continuous__latent + - name: Identify associations - t-test + run: | + cd tutorial + move-dl data=random_continuous task=random_continuous__id_assoc_ttest --cfg job + move-dl data=random_continuous task=random_continuous__id_assoc_ttest task.training_loop.num_epochs=30 task.num_refits=4 + - name: Identify associations - bayes factors + run: | + cd tutorial + move-dl data=random_continuous task=random_continuous__id_assoc_bayes --cfg job + move-dl data=random_continuous task=random_continuous__id_assoc_bayes task.training_loop.num_epochs=30 task.num_refits=4 + - name: Identify associations - KS + run: | + cd tutorial + move-dl data=random_continuous task=random_continuous__id_assoc_ks --cfg job + move-dl data=random_continuous task=random_continuous__id_assoc_ks task.training_loop.num_epochs=30 task.num_refits=4 + + publish: + name: Publish package + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags') + needs: + - format + - lint + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install twine and build + run: python -m pip install --upgrade twine build + - name: Build + run: python -m build + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }}