mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Set up build build avoidance
This commit configures the CI to run specific parts of the CI when relevant changes has been made. This should help us not have to deal with the integration tests when we do doc/admin changes.
This commit is contained in:
		
							parent
							
								
									d8ce440309
								
							
						
					
					
						commit
						1815040d98
					
				
							
								
								
									
										26
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/lint.yml
									
									
									
									
										vendored
									
									
								
							@ -9,7 +9,18 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: golangci-lint
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: golangci/golangci-lint-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          version: latest
 | 
			
		||||
@ -25,6 +36,21 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            **/*.md
 | 
			
		||||
            **/*.yml
 | 
			
		||||
            **/*.yaml
 | 
			
		||||
            **/*.ts
 | 
			
		||||
            **/*.js
 | 
			
		||||
            **/*.sass
 | 
			
		||||
            **/*.css
 | 
			
		||||
            **/*.scss
 | 
			
		||||
            **/*.html
 | 
			
		||||
 | 
			
		||||
      - name: Prettify code
 | 
			
		||||
        uses: creyD/prettier_action@v4.0
 | 
			
		||||
        with:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										17
									
								
								.github/workflows/test-integration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/test-integration.yml
									
									
									
									
										vendored
									
									
								
							@ -3,21 +3,28 @@ name: CI
 | 
			
		||||
on: [pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  # The "build" workflow
 | 
			
		||||
  integration-test:
 | 
			
		||||
    # The type of runner that the job will run on
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    # Steps represent a sequence of tasks that will be executed as part of the job
 | 
			
		||||
    steps:
 | 
			
		||||
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      # Setup Go
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: Setup Go
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: actions/setup-go@v2
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: "1.17"
 | 
			
		||||
 | 
			
		||||
      - name: Run Integration tests
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: go test -tags integration -timeout 30m
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							@ -3,31 +3,39 @@ name: CI
 | 
			
		||||
on: [push, pull_request]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  # The "build" workflow
 | 
			
		||||
  test:
 | 
			
		||||
    # The type of runner that the job will run on
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    # Steps represent a sequence of tasks that will be executed as part of the job
 | 
			
		||||
    steps:
 | 
			
		||||
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      # Setup Go
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
        uses: tj-actions/changed-files@v14.1
 | 
			
		||||
        with:
 | 
			
		||||
          files: |
 | 
			
		||||
            go.*
 | 
			
		||||
            **/*.go
 | 
			
		||||
            integration_test/
 | 
			
		||||
            config-example.yaml
 | 
			
		||||
 | 
			
		||||
      - name: Setup Go
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        uses: actions/setup-go@v2
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: "1.17" # The Go version to download (if necessary) and use.
 | 
			
		||||
          go-version: "1.17"
 | 
			
		||||
 | 
			
		||||
      # Install all the dependencies
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: |
 | 
			
		||||
          go version
 | 
			
		||||
          sudo apt update
 | 
			
		||||
          sudo apt install -y make
 | 
			
		||||
 | 
			
		||||
      - name: Run tests
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make test
 | 
			
		||||
 | 
			
		||||
      - name: Run build
 | 
			
		||||
        if: steps.changed-files.outputs.any_changed == 'true'
 | 
			
		||||
        run: make
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user