From 86af81c6f8e915ef583079ca9405e007195d6e3b Mon Sep 17 00:00:00 2001 From: Sarah Roberts Date: Fri, 16 Jun 2023 14:54:16 -0700 Subject: [PATCH] CORE-1909: added GitHub actions for creating releases --- .github/workflows/build-prerelease.yml | 35 ++++++++++++++++++++++++++ .github/workflows/build-release.yml | 34 +++++++++++++++++++++++++ .github/workflows/golangci-lint.yml | 35 +++++++++++++++++++------- 3 files changed, 95 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/build-prerelease.yml create mode 100644 .github/workflows/build-release.yml diff --git a/.github/workflows/build-prerelease.yml b/.github/workflows/build-prerelease.yml new file mode 100644 index 0000000..8ba760d --- /dev/null +++ b/.github/workflows/build-prerelease.yml @@ -0,0 +1,35 @@ +name: skaffold-build-prerelease +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" +jobs: + pipeline: + name: Skaffold Docker build + runs-on: ubuntu-20.04 + steps: + - name: Checkout Repo + id: checkout + uses: actions/checkout@v3 + - name: Harbor Login + id: harbor_login + uses: docker/login-action@v2 + with: + registry: harbor.cyverse.org + username: ${{ secrets.HARBOR_USERNAME }} + password: ${{ secrets.HARBOR_PASSWORD }} + - name: Install Kubernetes Tools + id: install_k8s_tools + uses: yokawasa/action-setup-kube-tools@v0.9.2 + - name: Build Docker images + id: build + run: | + skaffold build --file-output build.json + - name: Build manifest tarball + id: build_manifest_tarball + run: | + tar -czpvf deploy-info.tar.gz build.json skaffold.yaml k8s + - uses: ncipollo/release-action@v1 + with: + artifacts: "build.json,deploy-info.tar.gz" + prerelease: true diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 0000000..be07f90 --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,34 @@ +name: skaffold-build-release +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+" +jobs: + pipeline: + name: Skaffold Docker build + runs-on: ubuntu-20.04 + steps: + - name: Checkout Repo + id: checkout + uses: actions/checkout@v3 + - name: Harbor Login + id: harbor_login + uses: docker/login-action@v2 + with: + registry: harbor.cyverse.org + username: ${{ secrets.HARBOR_USERNAME }} + password: ${{ secrets.HARBOR_PASSWORD }} + - name: Install Kubernetes Tools + id: install_k8s_tools + uses: yokawasa/action-setup-kube-tools@v0.9.2 + - name: Build Docker images + id: build + run: | + skaffold build --file-output build.json + - name: Build manifest tarball + id: build_manifest_tarball + run: | + tar -czpvf deploy-info.tar.gz build.json skaffold.yaml k8s + - uses: ncipollo/release-action@v1 + with: + artifacts: "build.json,deploy-info.tar.gz" diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index d1d10c0..d2af3ec 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -1,38 +1,55 @@ name: golangci-lint on: push: - tags: - - v* branches: - master - main pull_request: + +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + # pull-requests: read + jobs: golangci: name: lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: '1.19' + cache: false - name: golangci-lint - uses: golangci/golangci-lint-action@v2 + uses: golangci/golangci-lint-action@v3 with: - # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version - version: latest + # Require: The version of golangci-lint to use. + # When `install-mode` is `binary` (default) the value can be v1.2 or v1.2.3 or `latest` to use the latest version. + # When `install-mode` is `goinstall` the value can be v1.2.3, `latest`, or the hash of a commit. + version: v1.53 # Optional: working directory, useful for monorepos # working-directory: somedir # Optional: golangci-lint command line arguments. - # args: --issues-exit-code=0 + # + # Note: by default the `.golangci.yml` file should be at the root of the repository. + # The location of the configuration file can be changed by using `--config=` + # args: --timeout=30m --config=/my/path/.golangci.yml --issues-exit-code=0 # Optional: show only new issues if it's a pull request. The default value is `false`. # only-new-issues: true - # Optional: if set to true then the action will use pre-installed Go. - # skip-go-installation: true + # Optional: if set to true then the all caching functionality will be complete disabled, + # takes precedence over all other caching options. + # skip-cache: true # Optional: if set to true then the action don't cache or restore ~/go/pkg. # skip-pkg-cache: true # Optional: if set to true then the action don't cache or restore ~/.cache/go-build. # skip-build-cache: true + + # Optional:The mode to install golangci-lint. It can be 'binary' or 'goinstall'. + # install-mode: "goinstall"