From 51249cda781e42136234f9329d7af0dcc6b6f1b8 Mon Sep 17 00:00:00 2001 From: CLoZengineer <108562102+CLoZengineer@users.noreply.github.com> Date: Thu, 22 Sep 2022 17:09:59 -0400 Subject: [PATCH] chore: creates ci.yml workflow (#2167) Creates our basic CI/CD workflows Co-authored-by: Christopher Lowenthal --- .github/workflows/cd.yml | 77 ++++++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 49 +++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 .github/workflows/cd.yml create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml new file mode 100644 index 000000000..a07e25b5a --- /dev/null +++ b/.github/workflows/cd.yml @@ -0,0 +1,77 @@ +name: CD + +on: + push: + branches: ["master"] + + workflow_dispatch: + +jobs: + validate: + runs-on: ubuntu-latest + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - uses: actions/setup-go@v3 + with: + go-version: "^1.19.1" + + - run: go version + + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + args: --timeout=5m + + - name: go vet + run: go vet ./... + + - name: test + run: go test ./... + + release: + needs: validate + runs-on: ubuntu-latest + outputs: + version: ${{ steps.semrel.outputs.version }} + + steps: + - name: go-semantic-release + id: semrel + uses: go-semantic-release/action@v1.17.0 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + + build: + needs: release + runs-on: ubuntu-latest + strategy: + matrix: + goos: + - "darwin" + - "linux" + - "windows" + goarch: + - "amd64" + - "arm64" + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-go@v3 + with: + go-version: "^1.19.1" + + - name: build + run: GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go build -o ./build/${{ matrix.goos }}-${{ matrix.goarch }} + + - name: Upload binaries to release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ./build/${{ matrix.goos }}-${{ matrix.goarch }} + asset_name: ${{ matrix.goos }}-${{ matrix.goarch }} + tag: ${{ github.ref }} + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..510619ddf --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,49 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + pull_request: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + validate-title: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: go-semantic-release/action@v1 + id: semrel + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + dry: true + + validate: + name: Code Checks + 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@v3 + + - uses: actions/setup-go@v3 + with: + go-version: "^1.19.1" + + - run: go version + + - name: golangci-lint + uses: golangci/golangci-lint-action@v3 + with: + args: --timeout=5m + + - name: go vet + run: go vet ./... + + - name: test + run: go test ./...