name: Default env: GO_VERSION: ^1.21 on: push: branches: - master pull_request: workflow_call: jobs: clean: name: Clean runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # - uses: actions/setup-go@v5 - uses: erezrokah/setup-go@feat/add_cache_prefix with: go-version: ${{ env.GO_VERSION }} cache-key-prefix: clean-cache- id: go - name: Install tools run: make install - name: Assets run: make assets - name: Docs run: make docs - name: Toml run: make toml - name: Porcelain run: make porcelain build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: erezrokah/setup-go@feat/add_cache_prefix with: go-version: ${{ env.GO_VERSION }} cache-key-prefix: build-cache- id: go - uses: actions/setup-node@v4 with: node-version: "18" cache: "npm" - run: mkdir dist && touch dist/empty - name: Build run: make build test: name: Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # - uses: actions/setup-go@v5 - uses: erezrokah/setup-go@feat/add_cache_prefix with: go-version: ${{ env.GO_VERSION }} cache-key-prefix: test-cache- id: go - name: Test run: mkdir dist && touch dist/empty && make test lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ env.GO_VERSION }} cache: false # avoid cache thrashing id: go - run: mkdir dist && touch dist/empty - name: Lint uses: golangci/golangci-lint-action@v3 with: version: latest args: --timeout 5m ui: name: UI runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "18" cache: "npm" - name: Install run: make install-ui - name: Lint run: make lint-ui - name: Test run: make test-ui - name: Build UI run: make ui - name: Cache dist uses: actions/cache/save@v3 id: cache-dist with: path: dist key: ${{ runner.os }}-${{ github.sha }}-dist - name: Porcelain run: | test -z "$(git status --porcelain)" || (git status; git diff; false) integration: name: Integration runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: erezrokah/setup-go@feat/add_cache_prefix with: go-version: ${{ env.GO_VERSION }} cache-key-prefix: integration-cache- id: go - uses: actions/setup-node@v4 with: node-version: "18" cache: "npm" - name: Build UI run: make install-ui ui - name: Build Go run: make build - name: Install playwright run: npx playwright install --with-deps chromium - name: Run tests run: npx playwright test - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report path: playwright-report/ retention-days: 14