diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e4d2524..ce303f2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,28 +34,8 @@ jobs: run: | pytest -v - test-examples: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - submodules: recursive - token: ${{ secrets.GH_TOKEN }} - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: "3.12" - - - name: Install dependencies + - name: Run examples run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - make - pip install -e . - synapse-sim --iface-ip 127.0.0.1 --rpc-port 50051 & sleep 5 diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000..8d3bf99 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,18 @@ +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +name: release-please + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: googleapis/release-please-action@v4 + with: + token: ${{ secrets.RELEASE_PLEASE_AT }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..133e2d1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,101 @@ +name: main + +on: + push: + tags: + - "v*" + +permissions: + id-token: write + +jobs: + sdist: + name: Build source distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + submodules: "recursive" + - uses: actions/setup-python@v5 + - name: Prep repo + run: | + pip install -r requirements.txt + make + - name: Build sdist + run: python -m build --sdist + - uses: actions/upload-artifact@v4 + with: + name: sdist + path: dist/*.tar.gz + + publish-testpypi: + name: Publish to testpypi + needs: [sdist] + runs-on: ubuntu-latest + environment: + name: testpypi + url: https://test.pypi.org/legacy/ + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v4 + with: + name: sdist + path: dist + + - name: List files + run: ls -la dist/ + + - name: Publish package distributions to testpypi + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ + verbose: true + + validate-test-pypi-release: + runs-on: ubuntu-latest + needs: publish-testpypi + steps: + - name: wait for package to be available + run: sleep 30 + + - name: install test pypi release + run: | + # Get version from GitHub ref (removes 'refs/tags/v' prefix) + VERSION=${GITHUB_REF_NAME#v} + pip install --extra-index-url https://test.pypi.org/simple/ science-synapse==$VERSION + + - name: validate + run: | + # Run Help + synapsectl --help + + # Run Simulator + synapse-sim --iface-ip 127.0.0.1 --rpc-port 50051 & + sleep 2 + + synapsectl -u 127.0.0.1:50051 info + + # Kill Simulator + kill $(jobs -p) + + publish-pypi: + name: Publish to pypi + needs: [validate-test-pypi-release] + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/science-synapse/ + permissions: + id-token: write + steps: + - uses: actions/download-artifact@v4 + with: + name: sdist + path: dist + + - name: Publish package distributions to pypi + uses: pypa/gh-action-pypi-publish@release/v1 + with: + verbose: true diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..8d7e5f1 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "1.0.1" +} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..38b2b1c --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,5 @@ +{ + "packages": { ".": { "release-type": "python" } }, + "bootstrap-sha": "4d93567a0c5c6d48d2a7ce3a69e89fbf6395eb81", + "always-update": true +} diff --git a/setup.py b/setup.py index 16b4738..b6296d5 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,7 @@ setup( name="science-synapse", - version="2.2.1", + version="2.2.4", description="Client library and CLI for the Synapse API", author="Science Team", author_email="team@science.xyz",