Commit b4e9a36d authored by Achilleas Pipinellis's avatar Achilleas Pipinellis

Merge branch 'package-ci-doc-update' into 'master'

Update Composer and PyPI docs with additional info

See merge request gitlab-org/gitlab!40617
parents 4a8274ef 014849ee
...@@ -80,6 +80,10 @@ Now that the basics of our project is completed, we can publish the package. ...@@ -80,6 +80,10 @@ Now that the basics of our project is completed, we can publish the package.
To publish the package, you need: To publish the package, you need:
- A personal access token. You can generate a [personal access token](../../../user/profile/personal_access_tokens.md) with the scope set to `api` for repository authentication. - A personal access token. You can generate a [personal access token](../../../user/profile/personal_access_tokens.md) with the scope set to `api` for repository authentication.
NOTE: **Note:**
[Deploy tokens](./../../project/deploy_tokens/index.md) are not yet supported for use with Composer.
- Your project ID which can be found on the home page of your project. - Your project ID which can be found on the home page of your project.
To publish the package hosted on GitLab, make a `POST` request to the GitLab package API. To publish the package hosted on GitLab, make a `POST` request to the GitLab package API.
......
...@@ -248,6 +248,13 @@ Uploading mypypipackage-0.0.1.tar.gz ...@@ -248,6 +248,13 @@ Uploading mypypipackage-0.0.1.tar.gz
This indicates that the package was uploaded successfully. You can then navigate This indicates that the package was uploaded successfully. You can then navigate
to your project's **Packages & Registries** page and see the uploaded packages. to your project's **Packages & Registries** page and see the uploaded packages.
If you would rather not use a `.pypirc` file to define your repository source,
you can upload to the repository with the authentication inline:
```shell
TWINE_PASSWORD=<personal_access_token or deploy_token> TWINE_USERNAME=<username or deploy_token_username> python3 -m twine upload --repository-url https://gitlab.com/api/v4/projects/<project_id>/packages/pypi dist/*
```
If you did not follow the guide above, then you need to ensure your package If you did not follow the guide above, then you need to ensure your package
has been properly built and you [created a PyPi package with `setuptools`](https://packaging.python.org/tutorials/packaging-projects/). has been properly built and you [created a PyPi package with `setuptools`](https://packaging.python.org/tutorials/packaging-projects/).
...@@ -292,3 +299,32 @@ Collecting mypypipackage ...@@ -292,3 +299,32 @@ Collecting mypypipackage
Installing collected packages: mypypipackage Installing collected packages: mypypipackage
Successfully installed mypypipackage-0.0.1 Successfully installed mypypipackage-0.0.1
``` ```
## Using GitLab CI with PyPI packages
NOTE: **Note:**
`CI_JOB_TOKEN`s are not yet supported for use with PyPI.
To work with PyPI commands within [GitLab CI/CD](./../../../ci/README.md), you can use
[environment variables](./../../../ci/variables/README.md#custom-environment-variables)
to access your authentication tokens in your commands.
Set up environment variables for `TWINE_PASSWORD` and `TWINE_USERNAME` using either:
- A [personal access token](../../../user/profile/personal_access_tokens.md) and your GitLab username.
- A [deploy token](./../../project/deploy_tokens/index.md) and its associated deploy token username.
You can now access your `TWINE_USERNAME` and `TWINE_PASSWORD` using any `twine` command in your
`.gitlab-ci.yml` file.
For example:
```yaml
image: python:latest
run:
script:
- pip install twine
- python setup.py sdist bdist_wheel
- TWINE_PASSWORD=${TWINE_PASSWORD} TWINE_USERNAME=${TWINE_USERNAME} python -m twine upload --repository-url https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/packages/pypi dist/*
```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment