--- name: test-and-build on: push: branches: ['*'] tags: ['v*'] permissions: contents: write issues: write jobs: test-and-build: defaults: run: shell: bash container: image: luzifer/archlinux env: CGO_ENABLED: 0 GOPATH: /go runs-on: ubuntu-latest steps: - name: Enable custom AUR package repo run: echo -e "[luzifer]\nSigLevel = Never\nServer = https://archrepo.hub.luzifer.io/\$arch" >>/etc/pacman.conf - name: Install required packages run: | pacman -Syy --noconfirm \ awk \ curl \ diffutils \ git \ go \ golangci-lint-bin \ make \ nodejs-lts-hydrogen \ npm \ tar \ trivy \ unzip \ which \ zip - uses: actions/checkout@v3 - name: Marking workdir safe run: git config --global --add safe.directory /__w/ots/ots - name: 'Lint and test code: API' run: | go test -cover -v ./... golangci-lint run ./... - name: 'Lint and test code: Client' working-directory: ./pkg/client run: | go test -cover -v ./... golangci-lint run ./... - name: 'Lint and test code: OTS-CLI' working-directory: ./cmd/ots-cli run: | go test -cover -v ./... golangci-lint run ./... - name: Generate (and validate) translations run: make translate - name: Delete issue template when no languages require translation run: | grep -q "### Language" translate-issue.md || rm -f translate-issue.md - name: Update Translations Issue uses: JasonEtco/create-an-issue@v2 if: github.ref == 'refs/heads/master' && hashFiles('translate-issue.md') != '' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: filename: translate-issue.md update_existing: true - name: Build release run: make publish env: FORCE_SKIP_UPLOAD: 'true' MOD_MODE: readonly NO_TESTS: 'true' PACKAGES: '.' - name: Execute Trivy scan run: make trivy - name: Extract changelog run: 'awk "/^#/ && ++c==2{exit}; /^#/f" "History.md" | tail -n +2 >release_changelog.md' - name: Release uses: ncipollo/release-action@v1 if: startsWith(github.ref, 'refs/tags/') with: artifacts: '.build/*' bodyFile: release_changelog.md draft: false generateReleaseNotes: false ...