name: Build Package run-name: Build Python Package on: workflow_call: inputs: version_suffix: description: 'Suffix for version (z.B. "dev", "alpha", "beta")' required: false type: string working_directory: required: true type: string jobs: build: runs-on: [ runner ] container: git.sh-edraft.de/sh-edraft.de/act-runner:latest defaults: run: working-directory: ${{ inputs.working_directory }} steps: - name: Clone Repository uses: https://github.com/actions/checkout@v3 with: token: ${{ secrets.CI_ACCESS_TOKEN }} - name: Download build version artifact uses: actions/download-artifact@v3 with: name: version - name: Set version run: | VERSION_SUFFIX="${{ inputs.version_suffix }}" if [ -n "$VERSION_SUFFIX" ]; then if [[ "$VERSION_SUFFIX" == "dev" ]]; then echo "Using dev versioning" BASE_VERSION=$(cat version.txt | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+\.)([0-9]+)/\1/') DEV_NUMBER=$(echo "$VERSION_SUFFIX" | sed -E 's/dev([0-9]*)/\1/') DEV_NUMBER=${DEV_NUMBER:-1} sed -i -E "s/^version = \".*\"/version = \"${BASE_VERSION}dev${DEV_NUMBER}\"/" pyproject.toml else echo "Using suffix versioning: $VERSION_SUFFIX" sed -i -E "s/^version = \".*\"/version = \"$(cat version.txt)-$VERSION_SUFFIX\"/" pyproject.toml fi else echo "Using release versioning" sed -i -E "s/^version = \".*\"/version = \"$(cat version.txt)\"/" pyproject.toml fi - name: Install Dependencies run: | pip install build - name: Build Package run: | python -m build --outdir dist - name: Login to registry git.sh-edraft.de uses: https://github.com/docker/login-action@v1 with: registry: git.sh-edraft.de username: ${{ secrets.CI_USERNAME }} password: ${{ secrets.CI_ACCESS_TOKEN }} - name: Push image run: | pip install twine python -m twine upload --repository-url https://git.sh-edraft.de/api/packages/sh-edraft.de/pypi -u ${{ secrets.CI_USERNAME }} -p ${{ secrets.CI_ACCESS_TOKEN }} ./dist/*