diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..e6762bc --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,82 @@ +on: + push: + workflow_dispatch: + inputs: + verbose: + description: "Verbose" + required: false + default: false + type: boolean + +jobs: + build: + runs-on: container + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install the latest version of uv + uses: astral-sh/setup-uv@v4 + with: + version: "0.7.2" + + - name: Install + run: uv sync + + - name: Get version + run: echo "VERSION=$(.venv/bin/dunamai from any --style semver)" >> $GITHUB_ENV + + - name: Version + run: echo $VERSION + + - name: Get distance from tag + run: echo "DISTANCE=$(.venv/bin/dunamai from any --format '{distance}')" >> $GITHUB_ENV + + - name: Distance + run: echo $DISTANCE + + - name: Workaround for bug of podman-login + if: env.DISTANCE == '0' + run: | + mkdir -p $HOME/.docker + echo "{ \"auths\": {} }" > $HOME/.docker/config.json + + - name: Log in to the container registry (with another workaround) + if: env.DISTANCE == '0' + uses: actions/podman-login@v1 + with: + registry: ${{ vars.REGISTRY }} + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} + auth_file_path: /tmp/auth.json + + - name: Build the container image + if: env.DISTANCE == '0' + uses: actions/buildah-build@v1 + with: + image: gacsco + oci: true + labels: gacsco + tags: "latest ${{ env.VERSION }}" + containerfiles: | + ./Containerfile + + - name: Push the image to the registry + if: env.DISTANCE == '0' + uses: actions/push-to-registry@v2 + with: + registry: "docker://${{ vars.REGISTRY }}/${{ vars.ORGANISATION }}" + image: gacsco + tags: "latest ${{ env.VERSION }}" + + - name: Build wheel + if: env.DISTANCE == '0' + run: uv build --wheel + + - name: Publish Python package (home) + if: env.DISTANCE == '0' + env: + LOCAL_PYPI_TOKEN: ${{ secrets.LOCAL_PYPI_TOKEN }} + run: uv publish --publish-url https://code.philo.ydns.eu/api/packages/philorg/pypi --token $LOCAL_PYPI_TOKEN + continue-on-error: true