Build - 81/merge #19
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| run-name: Build - ${{ github.ref_name }} | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_call: | |
| inputs: | |
| ref: | |
| required: false | |
| type: string | |
| default: ${{ github.ref }} | |
| env: | |
| GO_VERSION: '1.22' | |
| RUBY_VERSION: '3.4' | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out the repository | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ inputs.ref }} | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ env.GO_VERSION }} | |
| - name: Set up ko | |
| uses: ko-build/setup-ko@v0.9 | |
| - name: Go format check | |
| run: | | |
| if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then | |
| echo "Go code is not formatted, run 'make fmt' to format code." | |
| exit 1; | |
| fi | |
| - name: Run unit tests | |
| run: | | |
| make test | |
| - name: Run vet | |
| run: | | |
| make vet | |
| - name: Run goreleaser | |
| uses: goreleaser/goreleaser-action@v6 | |
| with: | |
| version: '~> v2' | |
| args: release --skip validate --skip archive --clean --snapshot | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| KO_DOCKER_REPO: goreleaser.ko.local | |
| - name: Save docker image | |
| run: | | |
| docker save goreleaser.ko.local/server:latest > gemfast-PR-${{ github.sha }}.tar | |
| - name: Upload docker image | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: gemfast-docker | |
| path: gemfast-PR-${{ github.sha }}.tar | |
| if-no-files-found: error | |
| smoke-test: | |
| name: "smoke" | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| pkg: [docker] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: actions/checkout@v3 | |
| with: | |
| repository: rails/rails | |
| path: clones/rails | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: gemfast-${{ matrix.pkg }} | |
| - name: Smoke test | |
| run: ./scripts/run_smoke_tests.sh "${{ matrix.pkg }}" | |
| env: | |
| BUILD_TYPE: "${{ matrix.pkg }}" | |
| cve-test: | |
| name: "cve" | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| pkg: [docker] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: gemfast-${{ matrix.pkg }} | |
| - name: CVE test | |
| run: ./scripts/run_cve_tests.sh "${{ matrix.pkg }}" | |
| env: | |
| BUILD_TYPE: "${{ matrix.pkg }}" | |
| filter-test: | |
| name: "filter" | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| pkg: [docker] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: gemfast-${{ matrix.pkg }} | |
| - name: Filter test | |
| run: ./scripts/run_filter_tests.sh "${{ matrix.pkg }}" | |
| env: | |
| BUILD_TYPE: "${{ matrix.pkg }}" | |
| private-gems-test: | |
| name: "private-gems" | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| pkg: [docker] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: gemfast-${{ matrix.pkg }} | |
| - name: Private gems test | |
| run: ./scripts/run_private_gem_tests.sh "${{ matrix.pkg }}" | |
| env: | |
| BUILD_TYPE: "${{ matrix.pkg }}" | |
| auth-test: | |
| name: "auth" | |
| runs-on: ubuntu-latest | |
| needs: build | |
| strategy: | |
| matrix: | |
| pkg: [docker] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: ${{ env.RUBY_VERSION }} | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: gemfast-${{ matrix.pkg }} | |
| - name: Private gems test | |
| run: ./scripts/run_auth_tests.sh | |
| env: | |
| BUILD_TYPE: "${{ matrix.pkg }}" |