From 21126fec99df98f9cfbdb2e3d4347a033252014e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ljubo=20Nikoli=C4=87?= Date: Tue, 1 Aug 2023 15:24:53 +0200 Subject: [PATCH] fix: change snapshot name in goreleaser config (#286) --- .github/workflows/ci.yml | 38 ------------ .github/workflows/codeql.yml | 75 ----------------------- .github/workflows/lint.yml | 29 --------- .github/workflows/lint_pr.yml | 17 ------ .github/workflows/release.yml | 99 ------------------------------- .github/workflows/release_rc.yml | 81 ------------------------- .github/workflows/test-charts.yml | 19 ++++++ .github/workflows/test-ci.yml | 14 +++++ .github/workflows/test.yml | 81 ------------------------- .goreleaser.yaml | 2 +- 10 files changed, 34 insertions(+), 421 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/codeql.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/lint_pr.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/release_rc.yml create mode 100644 .github/workflows/test-charts.yml create mode 100644 .github/workflows/test-ci.yml delete mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 94d2a35e..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: CI - -on: - push: - tags: - - v* - branches-ignore: - - gh-pages - pull_request: - branches-ignore: - - gh-pages - schedule: - # Run daily at 01:34, so we get notified if CI is broken before a pull request - # is submitted. - - cron: "34 1 * * *" - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - lint: - uses: ./.github/workflows/lint.yml - test: - uses: ./.github/workflows/test.yml - codeql: - uses: ./.github/workflows/codeql.yml - # Virtual job that can be configured as a required check before a PR can be merged. - all-required-checks-done: - name: All required checks done - needs: - - lint - - test - - codeql - runs-on: ubuntu-22.04 - steps: - - run: | - echo "All required checks done" diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index fd89e43c..00000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,75 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - workflow_call: - -permissions: - actions: read - security-events: write - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: ['go'] - go: [ '1.20' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Golang with cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 765d03f3..00000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Lint - -on: - workflow_call: - -permissions: - contents: read - pull-requests: read - -jobs: - go-lint: - name: Golang Lint - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v3 - - - name: Setup Golang with cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - - name: golangci-lint - uses: golangci/golangci-lint-action@v3 - with: - version: "latest" - skip-pkg-cache: true - skip-build-cache: true - args: "-c ./.golangci.yml --timeout=10m --issues-exit-code=1 --max-issues-per-linter=0 --sort-results ./..." diff --git a/.github/workflows/lint_pr.yml b/.github/workflows/lint_pr.yml deleted file mode 100644 index aabd37c7..00000000 --- a/.github/workflows/lint_pr.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: PR Lint - -on: - pull_request_target: - types: - - opened - - edited - - synchronize - -jobs: - main: - name: Validate PR title - runs-on: ubuntu-22.04 - steps: - - uses: amannn/action-semantic-pull-request@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index e18c1706..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Release Armada Operator - -on: - workflow_run: - types: [completed] - workflows: [CI] - branches: - - v* - -permissions: - contents: write - -jobs: - validate: - if: github.event.workflow_run.event == 'push' && github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'armadaproject' - name: "Validate revision" - runs-on: ubuntu-22.04 - - steps: - - name: "Checkout" - uses: "actions/checkout@v3" - with: - fetch-depth: 0 - - # The given ref should belong to the main branch. - # If it starts with 'v', it should be a tag, belong to the main branch and match the semver regex. - # Anything else is invalid. - - name: Validate ref - run: | - ref='${{ github.event.workflow_run.head_branch }}' - sha='${{ github.event.workflow_run.head_sha }}' - - [[ $ref =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] && - [ $(git tag --points-at $sha | grep -E "^$ref\$" | wc -l) -eq 1 ] && - [ $(git branch --contains=$sha main | wc -l) -eq 1 ] - if [ $? -ne 0 ]; then - echo "::error ::Invalid ref $ref $sha: must be a tag, belong to the main branch and match the semver regex" - exit 1 - fi - release: - name: "Release" - needs: validate - runs-on: ubuntu-22.04 - environment: armada-dockerhub - - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Fetch Git tags - run: git fetch --force --tags - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: "1.20" - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: "Docker login" - uses: "docker/login-action@v2" - with: - username: "${{ secrets.DOCKERHUB_USER }}" - password: "${{ secrets.DOCKERHUB_PASS }}" - - - name: Set up Syft - run: curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin - - - name: Set current and previous tag # Workaround, GoReleaser uses 'git-describe' to determine a previous tag. - run: | - current_tag='${{ github.event.workflow_run.head_branch }}' - echo "GORELEASER_CURRENT_TAG=$current_tag" >> $GITHUB_ENV - previous_tag=$(git -c 'versionsort.suffix=-rc' tag --list --sort=version:refname | grep -Eo '^v[0-9]{1,}.[0-9]{1,}.[0-9]{1,}$' | tail -n 2 | head -n 1) - echo "GORELEASER_PREVIOUS_TAG=$previous_tag" >> $GITHUB_ENV - - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v4 - with: - distribution: goreleaser - version: v1.19.2 - args: "-f ./.goreleaser.yaml release --clean" - env: - FULL_RELEASE: true - DOCKER_REPO: "gresearch" - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}" - DOCKER_BUILDX_CACHE_FROM: "type=gha" - DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max" - invoke-chart-push: - name: Invoke Chart push - needs: release - uses: G-Research/charts/.github/workflows/invoke-push.yaml@master - secrets: - APP_ID: ${{ secrets.APP_ID }} - APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/release_rc.yml b/.github/workflows/release_rc.yml deleted file mode 100644 index 90d1ab72..00000000 --- a/.github/workflows/release_rc.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Release Armada Operator - RC - -on: - workflow_run: - types: [completed] - workflows: [CI] - branches: - - main - -permissions: - contents: write - -jobs: - validate: - if: github.event.workflow_run.event == 'push' && github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'armadaproject' - name: "Validate revision" - runs-on: ubuntu-22.04 - - steps: - - name: "Checkout" - uses: "actions/checkout@v3" - with: - fetch-depth: 0 - - # The given ref should belong to the main branch. - # If it's main, it shouldn't be more than 2 commits away (in case another push happened in the meantime). - # Anything else is invalid. - - name: Validate ref - run: | - ref='${{ github.event.workflow_run.head_branch }}' - sha='${{ github.event.workflow_run.head_sha }}' - - [ "$ref" == "main" ] && - [ $(git branch --contains=$sha main | wc -l) -eq 1 ] && - [ $(git rev-list --count $sha..main) -le 2 ] - if [ $? -ne 0 ]; then - echo "::error ::Invalid ref $ref $sha: must be a merge to main branch and not more than 2 commits away" - exit 1 - fi - release: - name: Release - needs: validate - runs-on: "ubuntu-22.04" - environment: armada-dockerhub - - steps: - - name: "Checkout" - uses: "actions/checkout@v3" - with: - fetch-depth: 0 - - - name: Setup Golang with Cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: "Docker login" - uses: "docker/login-action@v2" - with: - username: "${{ secrets.DOCKERHUB_USER }}" - password: "${{ secrets.DOCKERHUB_PASS }}" - - - name: "Run GoReleaser" - uses: "goreleaser/goreleaser-action@v4" - with: - distribution: "goreleaser" - version: v1.19.2 - args: "-f ./.goreleaser.yaml release --snapshot --skip-sbom --skip-sign --clean" - env: - DOCKER_REPO: "gresearch" - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - DOCKER_BUILDX_BUILDER: "${{ steps.buildx.outputs.name }}" - DOCKER_BUILDX_CACHE_FROM: "type=gha" - DOCKER_BUILDX_CACHE_TO: "type=gha,mode=max" - - - name: Run Docker push script - run: ./scripts/docker-push.sh -t '${{ github.event.workflow_run.head_sha }}' diff --git a/.github/workflows/test-charts.yml b/.github/workflows/test-charts.yml new file mode 100644 index 00000000..f59f5ba1 --- /dev/null +++ b/.github/workflows/test-charts.yml @@ -0,0 +1,19 @@ +name: Release Armada Operator + +on: + workflow_run: + types: [completed] + workflows: [Test CI] + branches: + - v* + +permissions: + contents: write + +jobs: + invoke-chart-push: + name: Invoke Chart push + uses: ljubon/charts/.github/workflows/invoke-push.yaml@charts-master + secrets: + APP_ID: ${{ secrets.APP_ID }} + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} diff --git a/.github/workflows/test-ci.yml b/.github/workflows/test-ci.yml new file mode 100644 index 00000000..0e486161 --- /dev/null +++ b/.github/workflows/test-ci.yml @@ -0,0 +1,14 @@ +name: Test CI + +on: + push: + tags: + - v* + +jobs: + all-required-checks-done: + name: All required checks done + runs-on: ubuntu-22.04 + steps: + - run: | + echo "All required checks done" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 0703b2a9..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Test - -on: - workflow_call: - -permissions: - contents: read - checks: write - -jobs: - go-unit-tests: - name: Golang Unit Tests - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - - name: Setup Golang with cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - - name: make test - run: make test - - - name: Go Test Coverage - uses: codecov/codecov-action@v3 - with: - files: ./operator.out # optional - - go-integration-tests: - name: Golang Integration Tests - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - - name: Setup Golang with cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - - name: make test-integration - run: make test-integration - - go-mod-up-to-date: - name: Golang Mod Up To Date - runs-on: ubuntu-22.04 - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup Golang with Cache - uses: magnetikonline/action-golang-cache@v4 - with: - go-version: "1.20" - - - name: Download all Go modules - run: go mod download - - - name: Check for tidyness of go.mod and go.sum - run: | - go mod tidy - - changed=$(git status -s -uno | wc -l) - - echo -e "### Git status" >> $GITHUB_STEP_SUMMARY - if [[ "$changed" -gt 0 ]]; then - echo -e "Go modules are not synchronized. Please run 'go mod tidy' and commit the changes." >> $GITHUB_STEP_SUMMARY - - git status -s -uno >> $GITHUB_STEP_SUMMARY - - echo -e >> $GITHUB_STEP_SUMMARY - echo -e "### Git diff" >> $GITHUB_STEP_SUMMARY - - git --no-pager diff >> $GITHUB_STEP_SUMMARY - else - echo -e "Go modules are synchronized." >> $GITHUB_STEP_SUMMARY - echo -e >> $GITHUB_STEP_SUMMARY - fi - - exit $changed diff --git a/.goreleaser.yaml b/.goreleaser.yaml index e8fa2442..b2c652a1 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -1,7 +1,7 @@ project_name: armada-operator snapshot: - name_template: "{{ .Tag }}" + name_template: "{{ .FullCommit }}" dist: "dist"