name: Default on: push: branches: - master pull_request: workflow_call: jobs: clean: name: Clean runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: ^1.20 id: go - name: Install tools run: make install - name: Assets run: make assets - name: Porcelain run: make porcelain build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: ^1.20 id: go - name: Build run: mkdir dist && touch dist/empty && make build test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: ^1.20 id: go - name: Test run: mkdir dist && touch dist/empty && make test lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: go-version: ^1.20 id: go - run: mkdir dist && touch dist/empty - name: Lint uses: golangci/golangci-lint-action@v3 with: version: latest args: --timeout 5m build-ui: name: UI runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: "18" - name: Get NPM cache dir id: npm-cache-dir run: | echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT - name: Cache NPM modules uses: actions/cache@v3 id: npm-cache with: path: ${{ steps.npm-cache-dir.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - name: Install tools run: make install-ui - name: Lint run: make lint-ui - name: Test run: make test-ui - uses: actions/setup-go@v4 with: go-version: ^1.20 id: go - name: Toml run: make toml - name: Porcelain run: | test -z "$(git status --porcelain)" || (git status; git diff; false) - name: Build run: make ui - name: Cache dist uses: actions/cache/save@v3 id: cache-dist with: path: dist key: ${{ runner.os }}-${{ github.sha }}-dist