name: pyzebra CI/CD pipeline on: push: branches: - main tags: - '*' env: TEST_BUILD_DIR: ${{ runner.temp }}/build-test jobs: prepare: runs-on: pyzebra steps: - name: Set up Conda run: | source /opt/miniconda3/etc/profile.d/conda.sh conda config --add channels conda-forge conda config --set solver libmamba test-env: runs-on: pyzebra needs: prepare if: github.ref == 'refs/heads/main' steps: - name: Checkout repository uses: actions/checkout@v4 - name: Build and deploy to testing run: | source /opt/miniconda3/etc/profile.d/conda.sh conda build --no-anaconda-upload --output-folder $TEST_BUILD_DIR ./conda-recipe conda install --name test --channel $TEST_BUILD_DIR --override-channels --force-reinstall pyzebra -y sudo systemctl restart pyzebra-test.service prod-env: runs-on: pyzebra needs: prepare if: startsWith(github.ref, 'refs/tags/') steps: - name: Checkout repository uses: actions/checkout@v4 - name: Build, upload and deploy to production run: | source /opt/miniconda3/etc/profile.d/conda.sh conda build --token ${{ secrets.ANACONDA_TOKEN }} ./conda-recipe conda install --name prod --use-local pyzebra -y sudo systemctl restart pyzebra-prod.service cleanup: runs-on: pyzebra needs: [test-env, prod-env] if: always() steps: - name: Cleanup run: | source /opt/miniconda3/etc/profile.d/conda.sh rm -rf $TEST_BUILD_DIR conda build purge-all