From b40e84aa582e29c195e7be72b41bb13f6b970060 Mon Sep 17 00:00:00 2001 From: krande Date: Tue, 19 Dec 2023 16:16:09 +0100 Subject: [PATCH] chore: add ci tools --- .github/workflows/pr-review.yaml | 34 +++++++++++ .github/workflows/pre-release-dispatch.yaml | 68 +++++++++++++++++++++ .github/workflows/release-on-new-tag.yaml | 28 +++++++++ .github/workflows/tag-on-pr-merge.yaml | 23 +++++++ 4 files changed, 153 insertions(+) create mode 100644 .github/workflows/pr-review.yaml create mode 100644 .github/workflows/pre-release-dispatch.yaml create mode 100644 .github/workflows/release-on-new-tag.yaml create mode 100644 .github/workflows/tag-on-pr-merge.yaml diff --git a/.github/workflows/pr-review.yaml b/.github/workflows/pr-review.yaml new file mode 100644 index 0000000..af3f95b --- /dev/null +++ b/.github/workflows/pr-review.yaml @@ -0,0 +1,34 @@ +name: Review Pull Request + +on: + pull_request_target: + types: [ opened, synchronize, edited, labeled, unlabeled ] + branches: + - main + - develop + +permissions: + pull-requests: write + contents: write + +# Use concurrency to ensure that only one instance of this workflow is running at a time +concurrency: + group: pr-lint-checker-${{ github.sha }} + cancel-in-progress: true + +jobs: + review: + uses: AibelDevs/action-toolbox/.github/workflows/default-tool-pr-review.yaml@main + secrets: + SOURCE_KEY: ${{ secrets.SOURCE_KEY }} + CONDA_API_TOKEN: ${{ secrets.CONDA_API_TOKEN }} + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + CUSTOM_PYPI_USERNAME: ${{ secrets.CUSTOM_PYPI_USERNAME }} + CUSTOM_PYPI_PASSWORD: ${{ secrets.CUSTOM_PYPI_PASSWORD }} + CUSTOM_PYPI_URL: ${{ secrets.CUSTOM_PYPI_URL }} + QUETZ_API_KEY: ${{ secrets.QUETZ_API_KEY }} + QUETZ_URL: ${{ secrets.QUETZ_URL }} + CONTAINER_REGISTRY_URL: ${{ secrets.CONTAINER_REGISTRY_URL }} + CONTAINER_REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }} + CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + GITOPS_KEY: ${{ secrets.GITOPS_KEY }} \ No newline at end of file diff --git a/.github/workflows/pre-release-dispatch.yaml b/.github/workflows/pre-release-dispatch.yaml new file mode 100644 index 0000000..e7e9326 --- /dev/null +++ b/.github/workflows/pre-release-dispatch.yaml @@ -0,0 +1,68 @@ +name: Issue pre-release + +on: + workflow_dispatch: + inputs: + release_pypi: + description: 'Issue Pre-Release to PyPI' + required: false + type: boolean + default: true + release_conda: + description: 'Issue Pre-Release to conda' + required: false + type: boolean + default: true + release_docker: + description: 'Issue Pre-Release to docker' + required: false + type: boolean + default: false + release_gitops: + description: 'Issue Pre-Release to gitops' + required: false + type: boolean + default: false + release_level: + description: 'Pre-release level (rebuild=latest tag)' + required: false + type: choice + default: "patch" + options: + - "patch" + - "minor" + - "major" + - "rebuild" + + +permissions: + id-token: write + contents: write + pull-requests: read + +concurrency: + group: release-${{ github.sha }} + cancel-in-progress: true + +jobs: + run: + uses: AibelDevs/action-toolbox/.github/workflows/default-tool-pre-release-dispatch.yaml@main + with: + release_pypi: ${{ github.event.inputs.release_pypi }} + release_conda: ${{ github.event.inputs.release_conda }} + release_docker: ${{ github.event.inputs.release_docker }} + release_gitops: ${{ github.event.inputs.release_gitops }} + pre_release_level: ${{ github.event.inputs.release_level }} + secrets: + SOURCE_KEY: ${{ secrets.SOURCE_KEY }} + CONDA_API_TOKEN: ${{ secrets.CONDA_API_TOKEN }} + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + CUSTOM_PYPI_USERNAME: ${{ secrets.CUSTOM_PYPI_USERNAME }} + CUSTOM_PYPI_PASSWORD: ${{ secrets.CUSTOM_PYPI_PASSWORD }} + CUSTOM_PYPI_URL: ${{ secrets.CUSTOM_PYPI_URL }} + QUETZ_API_KEY: ${{ secrets.QUETZ_API_KEY }} + QUETZ_URL: ${{ secrets.QUETZ_URL }} + CONTAINER_REGISTRY_URL: ${{ secrets.CONTAINER_REGISTRY_URL }} + CONTAINER_REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }} + CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + GITOPS_KEY: ${{ secrets.GITOPS_KEY }} diff --git a/.github/workflows/release-on-new-tag.yaml b/.github/workflows/release-on-new-tag.yaml new file mode 100644 index 0000000..dc3f762 --- /dev/null +++ b/.github/workflows/release-on-new-tag.yaml @@ -0,0 +1,28 @@ +name: Make Release on push of new tag + +# triggered on a tagged release +on: + push: + tags: + - 'v*.*.*' + +permissions: + id-token: write + contents: write + +jobs: + release: + uses: AibelDevs/action-toolbox/.github/workflows/default-tool-release.yaml@main + secrets: + SOURCE_KEY: ${{ secrets.SOURCE_KEY }} + CONDA_API_TOKEN: ${{ secrets.CONDA_API_TOKEN }} + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + CUSTOM_PYPI_USERNAME: ${{ secrets.CUSTOM_PYPI_USERNAME }} + CUSTOM_PYPI_PASSWORD: ${{ secrets.CUSTOM_PYPI_PASSWORD }} + CUSTOM_PYPI_URL: ${{ secrets.CUSTOM_PYPI_URL }} + QUETZ_API_KEY: ${{ secrets.QUETZ_API_KEY }} + QUETZ_URL: ${{ secrets.QUETZ_URL }} + CONTAINER_REGISTRY_URL: ${{ secrets.CONTAINER_REGISTRY_URL }} + CONTAINER_REGISTRY_USERNAME: ${{ secrets.CONTAINER_REGISTRY_USERNAME }} + CONTAINER_REGISTRY_PASSWORD: ${{ secrets.CONTAINER_REGISTRY_PASSWORD }} + GITOPS_KEY: ${{ secrets.GITOPS_KEY }} \ No newline at end of file diff --git a/.github/workflows/tag-on-pr-merge.yaml b/.github/workflows/tag-on-pr-merge.yaml new file mode 100644 index 0000000..855c80e --- /dev/null +++ b/.github/workflows/tag-on-pr-merge.yaml @@ -0,0 +1,23 @@ +name: Create Tag on PR Merge + +on: + pull_request: + branches: + - main + types: [closed] + +permissions: + id-token: write + contents: write + pull-requests: read + +concurrency: + group: release-${{ github.sha }} + cancel-in-progress: true + +jobs: + release_if_ok: + if: github.event.pull_request.merged == true + uses: AibelDevs/action-toolbox/.github/workflows/tool-generate-semantic-version.yaml@main + secrets: + SOURCE_KEY: ${{ secrets.SOURCE_KEY }}