From 4e4cca1d03f4db4808f1f47dc03b24d87fc69f66 Mon Sep 17 00:00:00 2001 From: Lukasz Karlowski Date: Sat, 27 Jul 2024 00:01:28 +0200 Subject: [PATCH] reusable --- .../workflows/generate_default_project.yaml | 24 ++++++ .../generate_default_project_reusable.yaml | 82 +++++++++++++++++++ cookiecutter_default_gh.yaml | 2 +- cookiecutter_default_gl.yaml | 2 +- 4 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/generate_default_project.yaml create mode 100644 .github/workflows/generate_default_project_reusable.yaml diff --git a/.github/workflows/generate_default_project.yaml b/.github/workflows/generate_default_project.yaml new file mode 100644 index 0000000..11a2845 --- /dev/null +++ b/.github/workflows/generate_default_project.yaml @@ -0,0 +1,24 @@ +name: Generate default project +on: + push: + +jobs: + test-Github-default-instance: + uses: ./.github/workflows/generate_default_project_reusable.yaml + with: + repo-path: github.com/karllu3/ds-lk-default.git + repo-user: karllu3 + repo-email: lukasz.karlowski@deepsense.ai + cookiecutter-profile: cookiecutter_default_gh.yaml + secrets: + repo-token: ${{ secrets.REPO_KEY_GITHUB }} + + test-GitLab-default-instance: + uses: ./.github/workflows/generate_default_project_reusable.yaml + with: + repo-path: gitlab.com/lukasz.karlowski/ds-lk-default.git + repo-user: lukasz karlowski + repo-email: lukasz.karlowski@deepsense.ai + cookiecutter-profile: cookiecutter_default_gh.yaml + secrets: + repo-token: ${{ secrets.REPO_KEY_GITLAB }} \ No newline at end of file diff --git a/.github/workflows/generate_default_project_reusable.yaml b/.github/workflows/generate_default_project_reusable.yaml new file mode 100644 index 0000000..ed05ce9 --- /dev/null +++ b/.github/workflows/generate_default_project_reusable.yaml @@ -0,0 +1,82 @@ +name: Generate default project template + +on: + workflow_call: + inputs: + repo-path: + required: true + type: string + repo-user: + required: true + type: string + repo-email: + required: true + type: string + cookiecutter-profile: + required: true + type: string + secrets: + repo-token: + required: true + +jobs: + validate-instance: + runs-on: ubuntu-latest + container: python:3.11 + permissions: + contents: read + pages: write + env: + TEST_REPO_TOKEN: ${{ secrets.repo-token }} + + steps: + - uses: actions/checkout@v4 + + - name: Cache Dependencies + uses: actions/cache@v4 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install Dependencies + run: pip install -r requirements.txt + + - name: Create Github project instance + run: cookiecutter . --no-input --config-file ${{ inputs.cookiecutter-profile }} + + - name: Remote checkout + run: | + git clone https://oauth2:${{ env.TEST_REPO_TOKEN }}@github.com/{inputs.repo-path} ds-default-repo + cp -r ds-default/. ds-default-repo + + - name: Set safe directory + run: | + git config --global --add safe.directory /__w/ds-template/ds-template + + - name: Prepare local git repo + working-directory: ./ds-default-repo + run: | + git config --local user.email ${{ inptus.repo-email }} + git config --local user.name ${{ inputs.repo-user }} + git checkout -b ds-default-check + git add . + + - name: Validate package build + working-directory: ./ds-default-repo + run: | + python -m pip install . + + - name: Install pre-commit + run: pip3 install pre-commit + + - name: Run pre-commit checks + working-directory: ./ds-default-repo + run: pre-commit run --all-files --show-diff-on-failure --color always + + - name: Push repo + working-directory: ./ds-default-repo + run: | + git commit -m "Repo after creation" + git push --set-upstream origin ds-default-check -f \ No newline at end of file diff --git a/cookiecutter_default_gh.yaml b/cookiecutter_default_gh.yaml index 01161ac..461d7ec 100644 --- a/cookiecutter_default_gh.yaml +++ b/cookiecutter_default_gh.yaml @@ -1,5 +1,5 @@ default_context: client_name: "ds" - project_name: "gh_default" + project_name: "ds_default" ci: "Github" jupytext": "No" diff --git a/cookiecutter_default_gl.yaml b/cookiecutter_default_gl.yaml index 1163954..ccb29d9 100644 --- a/cookiecutter_default_gl.yaml +++ b/cookiecutter_default_gl.yaml @@ -1,5 +1,5 @@ default_context: client_name: "ds" - project_name: "gl_default" + project_name: "ds_default" ci: "GitLab" jupytext": "No"