From 7f737c7c3c532ec363fcc1abe0b9ee7192de04ee Mon Sep 17 00:00:00 2001 From: z1turn0 Date: Sat, 3 Feb 2024 22:22:42 +0800 Subject: [PATCH 1/2] feat: support workflow_call publish docker --- .github/workflows/publish-docker.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 6783cbca..37c10f0b 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -1,18 +1,18 @@ name: Publish Docker on: - create: + workflow_call: workflow_dispatch: push: branches: [ "main" ] paths: - '.github/workflows/publish-docker.yml' - '.github/docker/**' -# pull_request: -# branches: [ "main" ] -# paths: -# - '.github/workflows/publish-docker.yml' -# - '.github/docker/**' + pull_request: + branches: [ "main" ] + paths: + - '.github/workflows/publish-docker.yml' + - '.github/docker/**' jobs: @@ -34,4 +34,5 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io dockerfile: ${{ matrix.dockerfile }} - tags: "latest" \ No newline at end of file + tags: "latest" + no_push: ${{ github.event_name == 'pull_request' }} \ No newline at end of file From 51478c424598f71e1596af91956fb27a47f8cb74 Mon Sep 17 00:00:00 2001 From: z1turn0 Date: Sat, 3 Feb 2024 23:42:42 +0800 Subject: [PATCH 2/2] feat: support test docker --- .github/workflows/check-loser-homework.yml | 36 ++++++++++------------ .github/workflows/test-your-docker.yml | 30 ++++++++++++++++++ 2 files changed, 47 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/test-your-docker.yml diff --git a/.github/workflows/check-loser-homework.yml b/.github/workflows/check-loser-homework.yml index 1a42e476..6918f07e 100644 --- a/.github/workflows/check-loser-homework.yml +++ b/.github/workflows/check-loser-homework.yml @@ -1,6 +1,11 @@ name: Check loser homework on: + workflow_call: + inputs: + docker_namespaces: + required: true + type: string workflow_dispatch: push: branches: [ "main" ] @@ -20,10 +25,12 @@ on: - 'src/群友提交/**' jobs: - whether-to-build-all: + prepare: runs-on: ubuntu-latest outputs: - need_build_all: ${{ steps.changed-files.outputs.any_changed }} + need_build_all: ${{ steps.changed-files.outputs.any_changed || + ( github.event_name != 'pull_request' && github.event_name != 'push' ) }} + docker_namespaces: ${{ inputs.docker_namespaces == '' && 'mq-b/loser-homework' || inputs.docker_namespaces}} steps: - uses: actions/checkout@v4 @@ -42,18 +49,12 @@ jobs: src/群友提交/**/input.txt src/群友提交/**/output.txt - convert-repo-to-lowercase: - runs-on: ubuntu-latest - outputs: - repo_lowercase: ${{ steps.github-repo-lowercase.outputs.REPO_LC }} - steps: - - name: Convert GITHUB_REPOSITORY lowercase - id: github-repo-lowercase - run: | - echo "REPO_LC=${GITHUB_REPOSITORY@L}" >> $GITHUB_OUTPUT - check: - needs: [ whether-to-build-all, convert-repo-to-lowercase ] + needs: prepare + env: + PYTHONIOENCODING: "utf-8" + DOTNET_CLI_FORCE_UTF8_ENCODING: "true" + strategy: matrix: include: @@ -69,7 +70,7 @@ jobs: cxx_compiler: clang++-17 c_compiler: clang-17 cxx_flags: -stdlib=libc++ - container: ghcr.io/${{ needs.convert-repo-to-lowercase.outputs.repo_lowercase }}/clang17 + container: ghcr.io/${{ needs.prepare.outputs.docker_namespaces }}/clang17 shell: bash use-ninja: true @@ -86,15 +87,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.github_token }} - env: - PYTHONIOENCODING: "utf-8" - DOTNET_CLI_FORCE_UTF8_ENCODING: "true" - steps: - uses: actions/checkout@v4 - name: delete unchanged cpp files - if: needs.whether-to-build-all.outputs.need_build_all == 'false' + if: | + needs.prepare.outputs.need_build_all == 'false' uses: ./.github/actions/delete-unchanged-cpp-files with: path: src/群友提交 diff --git a/.github/workflows/test-your-docker.yml b/.github/workflows/test-your-docker.yml new file mode 100644 index 00000000..0bf51302 --- /dev/null +++ b/.github/workflows/test-your-docker.yml @@ -0,0 +1,30 @@ +name: Test your docker package + +on: + workflow_dispatch: + inputs: + publish_docker: + type: boolean + default: true + description: publish your docker + +jobs: + convert-repo-to-lowercase: + runs-on: ubuntu-latest + outputs: + repo_lowercase: ${{ steps.github-repo-lowercase.outputs.REPO_LC }} + steps: + - name: Convert GITHUB_REPOSITORY lowercase + id: github-repo-lowercase + run: | + echo "REPO_LC=${GITHUB_REPOSITORY@L}" >> $GITHUB_OUTPUT + + publish-docker: + if: inputs.publish_docker + uses: ./.github/workflows/publish-docker.yml + + check-loser-homework: + needs: [convert-repo-to-lowercase, publish-docker] + uses: ./.github/workflows/check-loser-homework.yml + with: + docker_namespaces: ${{ needs.convert-repo-to-lowercase.outputs.repo_lowercase }}