diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 678c742..ad331b9 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -3,16 +3,8 @@ name: EasyTier Core on: push: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - ".github/workflows/core.yml" pull_request: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - ".github/workflows/core.yml" env: CARGO_TERM_COLOR: always @@ -23,6 +15,20 @@ defaults: shell: bash jobs: + pre_job: + # continue-on-error: true # Uncomment once integration is finished + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + # All of these options are optional, so you can remove them if you are happy with the defaults + concurrent_skipping: 'never' + skip_after_successful_duplicate: 'true' + paths: '["Cargo.toml", "easytier/**", ".github/workflows/core.yml"]' build: strategy: fail-fast: false @@ -50,6 +56,8 @@ jobs: TARGET: ${{ matrix.TARGET }} OS: ${{ matrix.OS }} OSS_BUCKET: ${{ secrets.ALIYUN_OSS_BUCKET }} + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/gui.yml b/.github/workflows/gui.yml index f5b5dd3..5b44e77 100644 --- a/.github/workflows/gui.yml +++ b/.github/workflows/gui.yml @@ -3,18 +3,8 @@ name: EasyTier GUI on: push: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - "easytier-gui/**" - - ".github/workflows/gui.yml" pull_request: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - "easytier-gui/**" - - ".github/workflows/gui.yml" env: CARGO_TERM_COLOR: always @@ -25,7 +15,21 @@ defaults: shell: bash jobs: - build: + pre_job: + # continue-on-error: true # Uncomment once integration is finished + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + # All of these options are optional, so you can remove them if you are happy with the defaults + concurrent_skipping: 'never' + skip_after_successful_duplicate: 'true' + paths: '["Cargo.toml", "easytier/**", "easytier-gui/**", ".github/workflows/gui.yml"]' + build-gui: strategy: fail-fast: false matrix: @@ -54,6 +58,8 @@ jobs: OS: ${{ matrix.OS }} GUI_TARGET: ${{ matrix.GUI_TARGET }} OSS_BUCKET: ${{ secrets.ALIYUN_OSS_BUCKET }} + needs: pre_job + if: needs.pre_job.outputs.should_skip != 'true' steps: - uses: actions/checkout@v3 @@ -236,7 +242,7 @@ jobs: - name: Archive artifact uses: actions/upload-artifact@v4 with: - name: easytier-${{ matrix.OS }}-${{ matrix.TARGET }} + name: easytier-gui-${{ matrix.OS }}-${{ matrix.TARGET }} path: | ./artifacts/* @@ -249,6 +255,6 @@ jobs: endpoint: ${{ secrets.ALIYUN_OSS_ENDPOINT }} bucket: ${{ secrets.ALIYUN_OSS_BUCKET }} local-path: ./artifacts/ - remote-path: /easytier-releases/${{ github.sha }}/ + remote-path: /easytier-releases/${{ github.sha }}/gui no-delete-remote-files: true retry: 5 \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cff4b52..508edb0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,18 +3,8 @@ name: EasyTier Test on: push: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - "easytier-gui/**" - - ".github/workflows/test.yml" pull_request: branches: ["develop", "main"] - paths: - - "easytier.toml" - - "easytier/**" - - "easytier-gui/**" - - ".github/workflows/test.yml" env: CARGO_TERM_COLOR: always @@ -25,6 +15,20 @@ defaults: shell: bash jobs: + pre_job: + # continue-on-error: true # Uncomment once integration is finished + runs-on: ubuntu-latest + # Map a step output to a job output + outputs: + should_skip: ${{ steps.skip_check.outputs.should_skip }} + steps: + - id: skip_check + uses: fkirc/skip-duplicate-actions@v5 + with: + # All of these options are optional, so you can remove them if you are happy with the defaults + concurrent_skipping: 'never' + skip_after_successful_duplicate: 'true' + paths: '["Cargo.toml", "easytier/**", ".github/workflows/test.yml"]' test: runs-on: ubuntu-latest steps: