diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index fd68796..2ebccf1 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -44,7 +44,8 @@ services: depends_on: - passenger-app passenger-app: - image: ghcr.io/rakutentech/passenger-go-exporter/passenger-app:6.0.14 + image: ghcr.io/rakutentech/passenger-go-exporter/passenger-app:6.0.20 + platform: linux/x86_64 ports: - 3000:3000 environment: diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 341d3e6..7bd97a6 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -13,14 +13,14 @@ jobs: strategy: matrix: passenger-version: - - 6.0.12 - - 6.0.13 - - 6.0.14 + - 6.0.18 + - 6.0.19 + - 6.0.20 steps: - - uses: actions/checkout@v3 - - uses: engineerd/setup-kind@v0.5.0 + - uses: actions/checkout@v4 + - uses: helm/kind-action@v1.5.0 with: - version: v0.11.1 + cluster_name: kind - name: Kind Load Image run: | docker build -t passenger-go-exporter:test . diff --git a/.github/workflows/passenger-app.yml b/.github/workflows/passenger-app.yml index 7e707fe..a1a9eee 100644 --- a/.github/workflows/passenger-app.yml +++ b/.github/workflows/passenger-app.yml @@ -3,9 +3,9 @@ name: Passenger-App on: push: branches: - - "passenger-app" + - "passenger-app" tags-ignore: - - "**" + - "**" jobs: build: @@ -14,12 +14,12 @@ jobs: strategy: matrix: passenger-version: - - 6.0.11 - - 6.0.12 - - 6.0.13 + - 6.0.18 + - 6.0.19 + - 6.0.20 steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -27,17 +27,17 @@ jobs: run: echo "TAG_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ secrets.USERNAME }} password: ${{ secrets.CR_PAT }} - name: Build and push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: ./test/passenger-app push: true diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 9bf68ec..27c5c41 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -4,18 +4,24 @@ on: pull_request: types: [opened, synchronize, reopened] +permissions: + contents: read + jobs: test: name: Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: go-version: '1.20' - - uses: actions/cache@v3 + cache: false + - uses: actions/cache@v4 with: - path: ~/go/pkg/mod + path: | + ~/.cache/go-build + ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- @@ -28,7 +34,7 @@ jobs: run: go test -json ./... > test.json - name: annotate tests if: always() - uses: guyarb/golang-test-annotations@v0.6.0 + uses: guyarb/golang-test-annotations@v0.7.0 with: test-results: test.json lint: @@ -38,11 +44,9 @@ jobs: go-version: [1.20] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-go@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 with: - stable: 'true' go-version: '1.20' + cache: false - uses: golangci/golangci-lint-action@v3 - with: - skip-go-installation: true diff --git a/.github/workflows/releease.yml b/.github/workflows/releease.yml index 75babdf..bedef81 100644 --- a/.github/workflows/releease.yml +++ b/.github/workflows/releease.yml @@ -15,21 +15,21 @@ jobs: COSIGN_EXPERIMENTAL: "1" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install cosign - uses: sigstore/cosign-installer@v2 + uses: sigstore/cosign-installer@v3 - name: Set env run: echo "TAG_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ secrets.USERNAME }} @@ -37,7 +37,7 @@ jobs: - name: Build and push id: build-and-push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: context: . push: true @@ -77,18 +77,18 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v3 + uses: actions/setup-go@v5 with: go-version: "1.20" - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v4 + uses: goreleaser/goreleaser-action@v5 with: version: latest - args: release --rm-dist + args: release --clean env: GITHUB_TOKEN: ${{ secrets.CR_PAT }} diff --git a/.gitignore b/.gitignore index 00a342f..5235859 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ passenger-go-exporter # Dependency directories (remove the comment below to include it) # vendor/ + +dist/ diff --git a/.golangci.yml b/.golangci.yaml similarity index 100% rename from .golangci.yml rename to .golangci.yaml diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..66ec721 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,33 @@ +version: 1 + +before: + hooks: + # You may remove this if you don't use go modules. + - go mod tidy + # you may remove this if you don't need go generate + - go generate ./... +builds: +- env: + - CGO_ENABLED=0 + goos: + - linux + - windows + - darwin + goarch: + - amd64 +archives: +- id: release-format + name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" + format: zip + +checksum: + name_template: "checksums.txt" +snapshot: + name_template: "{{ .Tag }}-next" +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:" + - "^ci:" diff --git a/.goreleaser.yml b/.goreleaser.yml deleted file mode 100644 index 5baf02a..0000000 --- a/.goreleaser.yml +++ /dev/null @@ -1,32 +0,0 @@ -before: - hooks: - # You may remove this if you don't use go modules. - - go mod download - # you may remove this if you don't need go generate - - go generate ./... -builds: - - env: - - CGO_ENABLED=0 - goos: - - windows - - darwin - - linux - goarch: - - amd64 -archives: - - replacements: - amd64: 64-bit - darwin: macOS - format: zip - -checksum: - name_template: "checksums.txt" -snapshot: - name_template: "{{ .Tag }}-next" -changelog: - sort: asc - filters: - exclude: - - "^docs:" - - "^test:" - - "^ci:" diff --git a/README.md b/README.md index 2ec3265..37769c6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Implemented in golang, keeps memory consumption below 100MB, and runs on CPU 0.0 ## Supported version - golang: 1.20 -- Passenger: 6.0.11, or later. +- Passenger: 6.0.18, or later. All other versions have not been tested. diff --git a/test/kubernetes/run.sh b/test/kubernetes/run.sh index 722bc1a..4f4d058 100755 --- a/test/kubernetes/run.sh +++ b/test/kubernetes/run.sh @@ -6,6 +6,7 @@ REPO_HOME=$(git rev-parse --show-toplevel) kubectl delete namespace test --ignore-not-found=true --wait=true kubectl create namespace test + # deploy kubectl apply -k ${REPO_HOME}/test/kubernetes/test kubectl set image -n test deployment/example example=ghcr.io/rakutentech/passenger-go-exporter/passenger-app:$PASSENGER_VERSION diff --git a/test/passenger-app/Dockerfile b/test/passenger-app/Dockerfile index 6e1cb85..07792da 100644 --- a/test/passenger-app/Dockerfile +++ b/test/passenger-app/Dockerfile @@ -1,12 +1,9 @@ -FROM ruby:2.7 +FROM ruby:3.3 -ARG ARG_RAILS_VERSION=7.0.2.4 -ARG ARG_PASSENGER_VERSION=6.0.13 +ARG ARG_RAILS_VERSION=7.0.8 +ARG ARG_PASSENGER_VERSION=6.0.20 ENV RAILS_VERSION $ARG_RAILS_VERSION ENV PASSENGER_VERSION $ARG_PASSENGER_VERSION -# -RUN apt-get update \ - && apt-get install -y nodejs WORKDIR /app # Create rails new application.