2024-06-29 12:14:18 +00:00
|
|
|
on:
|
|
|
|
push:
|
|
|
|
tags:
|
|
|
|
- '[0-9]+\.[0-9]+\.[0-9]+-c\.[0-9]+'
|
|
|
|
- '[0-9]+\.[0-9]+\.[0-9]+-a\.[0-9]+'
|
|
|
|
- '[0-9]+\.[0-9]+\.[0-9]'
|
|
|
|
|
|
|
|
jobs:
|
2024-07-05 09:15:07 +00:00
|
|
|
lint-and-typing:
|
2024-06-29 12:14:18 +00:00
|
|
|
runs-on: docker
|
|
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
|
|
steps:
|
|
|
|
- name: Checkout source code
|
|
|
|
uses: https://code.forgejo.org/actions/checkout@v3
|
|
|
|
- name: Install packages
|
|
|
|
run: |
|
2024-07-05 09:25:00 +00:00
|
|
|
pip install -e .[lint,typing] -q --disable-pip-version-check -q
|
2024-06-29 12:14:18 +00:00
|
|
|
python -m pip list --format=columns --disable-pip-version-check
|
|
|
|
- name: Run pylint
|
|
|
|
run: |
|
|
|
|
pylint --version
|
|
|
|
pylint **/*.py --exit-zero --rc-file pyproject.toml
|
2024-07-05 09:15:07 +00:00
|
|
|
- name: Run mypy
|
|
|
|
run: |
|
|
|
|
mypy --version
|
|
|
|
mypy .
|
2024-06-29 12:14:18 +00:00
|
|
|
|
|
|
|
build-artifacts:
|
2024-07-05 09:15:07 +00:00
|
|
|
needs: ["lint-and-typing"]
|
2024-06-29 12:14:18 +00:00
|
|
|
runs-on: docker
|
|
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
|
|
steps:
|
|
|
|
- name: Checkout source code
|
|
|
|
uses: https://code.forgejo.org/actions/checkout@v3
|
|
|
|
- name: Install packages
|
|
|
|
run: pip install build
|
|
|
|
- name: Build package
|
|
|
|
run: python -m build
|
|
|
|
- name: Save build artifacts
|
|
|
|
uses: https://code.forgejo.org/actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: packages
|
|
|
|
path: dist/*
|
|
|
|
|
|
|
|
publish-artifacts:
|
|
|
|
needs: ["build-artifacts"]
|
|
|
|
runs-on: docker
|
|
|
|
container: nikolaik/python-nodejs:python3.11-nodejs21
|
|
|
|
steps:
|
|
|
|
- name: Downloading static site artifacts
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: packages
|
|
|
|
path: dist
|
|
|
|
- name: Install Dependencies
|
|
|
|
run: pip install twine
|
|
|
|
- name: Upload package to registry
|
|
|
|
run: python -m twine upload --repository-url ${{ secrets.REPOSITORY_URL }} -u ${{ secrets.TWINE_DEPLOY_USER }} -p ${{ secrets.TWINE_DEPLOY_PASSWORD }} dist/*
|
2024-07-22 15:40:57 +00:00
|
|
|
|
|
|
|
build-and-push-container:
|
|
|
|
needs: [ "publish-artifacts" ]
|
|
|
|
runs-on: dind
|
|
|
|
steps:
|
|
|
|
- name: Set up Docker Buildx
|
|
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Log into Docker Package Registry
|
|
|
|
uses: docker/login-action@v3
|
|
|
|
with:
|
|
|
|
registry: forgejo.neshweb.net
|
|
|
|
username: ${{ secrets.FORGEJO_USERNAME }}
|
|
|
|
password: ${{ secrets.FORGEJO_TOKEN }}
|
|
|
|
- name: Build and push to Docker Package Registry
|
|
|
|
uses: docker/build-push-action@v5
|
|
|
|
with:
|
|
|
|
build-args: |
|
|
|
|
PACKAGE_VERSION=${{ github.ref_name }}
|
2024-07-22 15:44:54 +00:00
|
|
|
push: true
|
2024-07-22 15:40:57 +00:00
|
|
|
tags: forgejo.neshweb.net/firq/dockge-cli:${{ github.ref_name }}
|
|
|
|
|
|
|
|
release:
|
|
|
|
needs: [ build-and-push-container, publish-artifacts ]
|
|
|
|
if: success()
|
|
|
|
runs-on: docker
|
|
|
|
steps:
|
|
|
|
- name: Release New Version
|
|
|
|
uses: actions/forgejo-release@v1
|
|
|
|
with:
|
|
|
|
direction: upload
|
|
|
|
url: https://forgejo.neshweb.net
|
|
|
|
release-dir: release
|
|
|
|
token: ${{ secrets.FORGEJO_TOKEN }}
|
|
|
|
tag: ${{ github.ref_name }}
|