Skip to content

Merge pull request #31 from 5minds/develop #114

Merge pull request #31 from 5minds/develop

Merge pull request #31 from 5minds/develop #114

name: Robotframework ProcessCube
on:
push:
branches:
- master
- beta
- develop
env:
CI_TOOLS_VERSION: "3.3.4"
jobs:
get_version:
runs-on: ubuntu-latest
#runs-on: [self-hosted, k8s.5minds.cloud]
if: "!contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout@v3
- name: Use Python 3.x
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Use Node.js 22.x
uses: actions/setup-node@v3
with:
node-version: 22.x
- name: Install dependencies
# "setuptools>=46.1.0" is required for "setuptools.sic()"
run: |
pip install --upgrade "setuptools>=46.1.0"
npm install -g @process-engine/ci_tools@${{ env.CI_TOOLS_VERSION }}
- name: Prepare version infos
id: prepare_version
run: |
ci_tools prepare-version --allow-dirty-workdir --mode python
echo "::set-output name=VERSION::$(ci_tools get-version --mode python)"
echo "::set-output name=MAJOR_VERSION::$(ci_tools get-version --major --mode python)"
outputs:
VERSION: ${{ steps.prepare_version.outputs.VERSION }}
MAJOR_VERSION: ${{ steps.prepare_version.outputs.MAJOR_VERSION }}
build_and_publish:
runs-on: ubuntu-latest
#runs-on: [self-hosted, k8s.5minds.cloud]
needs: get_version
steps:
- uses: actions/checkout@v3
- name: Get version from common step
run: |
echo "VERSION=${{ needs.get_version.outputs.VERSION }}" >> $GITHUB_ENV
echo "MAJOR_VERSION=${{ needs.get_version.outputs.MAJOR_VERSION }}" >> $GITHUB_ENV
- name: Use Python 3.x
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Use Node.js 22.x
uses: actions/setup-node@v3
with:
node-version: 22.x
#- name: Run tests
# run: docker-compose -f docker-compose.tests.yaml up --build --exit-code-from robot
- name: Install dependencies
# "setuptools>=46.1.0" is required for "setuptools.sic()"
run: |
pip install --upgrade "setuptools>=46.1.0"
pip install wheel
npm install -g @process-engine/ci_tools@${{ env.CI_TOOLS_VERSION }}
- name: Set version
run: |
ci_tools set-version --version ${{ env.VERSION }} --mode python
- name: build
run: python setup.py sdist bdist_wheel
- name: Install dependencies
run: |
pip install twine
- name: Publish on PyPi
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload dist/*
build_docker:
runs-on: ubuntu-latest
#runs-on: [self-hosted, k8s.5minds.cloud]
needs: [get_version, build_and_publish]
steps:
- uses: actions/checkout@v3
- name: Get version from common step
run: |
echo "VERSION=${{ needs.get_version.outputs.VERSION }}" >> $GITHUB_ENV
echo "MAJOR_VERSION=${{ needs.get_version.outputs.MAJOR_VERSION }}" >> $GITHUB_ENV
- name: Build Docker Image for backend
run: |
docker build \
--tag 5minds/robotframework-processcube:$VERSION --build-arg PROCESS_CUBE_LIBRARY_VERSION=$VERSION .
- name: Tag master Release Docker Image for backend
if: github.ref == 'refs/heads/master'
run: |
docker tag 5minds/robotframework-processcube:$VERSION 5minds/robotframework-processcube:latest
docker tag 5minds/robotframework-processcube:$VERSION 5minds/robotframework-processcube:$MAJOR_VERSION
- name: Show Docker Images
run: docker images
- name: Login to Docker
run: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
env:
DOCKER_USER: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_PASS: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Push Docker Image
run: docker push 5minds/robotframework-processcube:$VERSION
- name: Push Docker Images for master release
if: github.ref == 'refs/heads/master'
run: |
docker push 5minds/robotframework-processcube:latest
docker push 5minds/robotframework-processcube:$MAJOR_VERSION
create_release:
runs-on: ubuntu-latest
#runs-on: [self-hosted, k8s.5minds.cloud]
needs: [get_version, build_and_publish, build_docker]
steps:
- uses: actions/checkout@v3
- name: Get version from common step
run: |
echo "VERSION=${{ needs.get_version.outputs.VERSION }}" >> $GITHUB_ENV
echo "MAJOR_VERSION=${{ needs.get_version.outputs.MAJOR_VERSION }}" >> $GITHUB_ENV
- name: Use Python 3.x
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Use Node.js 22.x
uses: actions/setup-node@v3
with:
node-version: 22.x
- name: Install dependencies
# "setuptools>=46.1.0" is required for "setuptools.sic()"
run: |
pip install --upgrade "setuptools>=46.1.0"
npm install -g @process-engine/ci_tools@${{ env.CI_TOOLS_VERSION }}
- name: Set version
run: |
ci_tools set-version --version ${{ env.VERSION }} --mode python
- name: Commit & tag version
env:
GH_USER: ${{ secrets.GH_CI_USER_NAME }}
GH_TOKEN: ${{ secrets.GH_CI_USER_TOKEN }}
run: |
ci_tools commit-and-tag-version --only-on-primary-branches --mode python
ci_tools update-github-release --mode python --only-on-primary-branches --use-title-and-text-from-git-tag