diff --git a/.github/actions/setup-ci/action.yaml b/.github/actions/setup-ci/action.yaml index ca51e9441f..bdd486d674 100644 --- a/.github/actions/setup-ci/action.yaml +++ b/.github/actions/setup-ci/action.yaml @@ -16,7 +16,7 @@ runs: run: |- set -exu; mkdir -p /tmp/artifacts/${{ github.job }}/; - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v4 with: node-version: '16' cache: 'yarn' diff --git a/.github/docker/docker-compose.yaml b/.github/docker/docker-compose.yaml index 362ad917a0..8c70341d6a 100644 --- a/.github/docker/docker-compose.yaml +++ b/.github/docker/docker-compose.yaml @@ -62,6 +62,6 @@ services: pykmip: network_mode: "host" profiles: ['pykmip'] - image: registry.scality.com/cloudserver-dev/pykmip + image: ${PYKMIP_IMAGE:-ghcr.io/scality/cloudserver/pykmip} volumes: - /tmp/artifacts/${JOB_NAME}:/artifacts diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index e9db9373c6..b414ee4330 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -14,12 +14,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: javascript, python, ruby - name: Build and analyze - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml index 4716cdfd1f..91f040631a 100644 --- a/.github/workflows/dependency-review.yaml +++ b/.github/workflows/dependency-review.yaml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: 'Dependency Review' - uses: actions/dependency-review-action@v3 + uses: actions/dependency-review-action@v4 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 4cd46eea8d..da47ac342f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,36 +11,59 @@ on: jobs: build-federation-image: - uses: scality/workflows/.github/workflows/docker-build.yaml@v1 - secrets: inherit - with: - push: true - registry: registry.scality.com - namespace: ${{ github.event.repository.name }} - name: ${{ github.event.repository.name }} - context: . - file: images/svc-base/Dockerfile - tag: ${{ github.event.inputs.tag }}-svc-base + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to GitHub Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ github.token }} + - name: Build and push image for federation + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: images/svc-base/Dockerfile + tags: | + ghcr.io/${{ github.repository }}:${{ github.event.inputs.tag }}-svc-base + cache-from: type=gha,scope=federation + cache-to: type=gha,mode=max,scope=federation build-image: - uses: scality/workflows/.github/workflows/docker-build.yaml@v1 - secrets: inherit - with: - push: true - registry: registry.scality.com - namespace: ${{ github.event.repository.name }} - name: ${{ github.event.repository.name }} - context: . - file: Dockerfile - tag: ${{ github.event.inputs.tag }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to GitHub Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ github.token }} + - name: Build and push image + uses: docker/build-push-action@v5 + with: + push: true + context: . + tags: | + ghcr.io/${{ github.repository }}:${{ github.event.inputs.tag }} + cache-from: type=gha + cache-to: type=gha,mode=max github-release: runs-on: ubuntu-latest steps: - name: Create Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ github.token }} with: name: Release ${{ github.event.inputs.tag }} tag_name: ${{ github.event.inputs.tag }} diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 5185c7c83a..9c5fb49f2a 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -71,17 +71,17 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: '16' cache: yarn - name: install dependencies run: yarn install --frozen-lockfile --network-concurrency 1 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: '3.9' - - uses: actions/cache@v2 + - uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip @@ -114,7 +114,7 @@ jobs: find . -name "*junit*.xml" -exec cp {} artifacts/junit/ ";" if: always() - name: Upload files to artifacts - uses: scality/action-artifacts@v2 + uses: scality/action-artifacts@v4 with: method: upload url: https://artifacts.scality.net @@ -124,61 +124,75 @@ jobs: if: always() build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1.6.0 + uses: docker/setup-buildx-action@v3 - name: Login to GitHub Registry - uses: docker/login-action@v1.10.0 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Login to Registry - uses: docker/login-action@v1 - with: - registry: registry.scality.com - username: ${{ secrets.REGISTRY_LOGIN }} - password: ${{ secrets.REGISTRY_PASSWORD }} + password: ${{ github.token }} - name: Build and push cloudserver image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v5 with: push: true context: . provenance: false tags: | - ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }} - registry.scality.com/cloudserver-dev/cloudserver:${{ github.sha }} + ghcr.io/${{ github.repository }}:${{ github.sha }} cache-from: type=gha,scope=cloudserver cache-to: type=gha,mode=max,scope=cloudserver + - name: Build and push pykmip image + uses: docker/build-push-action@v5 + with: + push: true + context: .github/pykmip + tags: | + ghcr.io/${{ github.repository }}/pykmip:${{ github.sha }} + cache-from: type=gha,scope=pykmip + cache-to: type=gha,mode=max,scope=pykmip build-federation-image: - uses: scality/workflows/.github/workflows/docker-build.yaml@v1 - secrets: inherit - with: - push: true - registry: registry.scality.com - namespace: cloudserver-dev - name: cloudserver - context: . - file: images/svc-base/Dockerfile - tag: ${{ github.sha }}-svc-base + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to GitHub Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ github.token }} + - name: Build and push image for federation + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: images/svc-base/Dockerfile + tags: | + ghcr.io/${{ github.repository }}:${{ github.sha }}-svc-base + cache-from: type=gha,scope=federation + cache-to: type=gha,mode=max,scope=federation multiple-backend: runs-on: ubuntu-latest needs: build env: - CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }} + CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}:${{ github.sha }} S3BACKEND: mem S3_LOCATION_FILE: /usr/src/app/tests/locationConfig/locationConfigTests.json S3DATA: multiple JOB_NAME: ${{ github.job }} steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - name: Setup CI environment @@ -194,7 +208,7 @@ jobs: env: S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json - name: Upload logs to artifacts - uses: scality/action-artifacts@v3 + uses: scality/action-artifacts@v4 with: method: upload url: https://artifacts.scality.net @@ -217,14 +231,14 @@ jobs: env: S3BACKEND: file S3VAULT: mem - CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }} + CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}:${{ github.sha }} MPU_TESTING: "yes" ENABLE_NULL_VERSION_COMPAT_MODE: "${{ matrix.enable-null-compat }}" JOB_NAME: ${{ matrix.job-name }} steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - name: Setup CI environment @@ -247,7 +261,7 @@ jobs: bash wait_for_local_port.bash 8000 40 yarn run ft_test | tee /tmp/artifacts/${{ matrix.job-name }}/tests.log - name: Upload logs to artifacts - uses: scality/action-artifacts@v3 + uses: scality/action-artifacts@v4 with: method: upload url: https://artifacts.scality.net @@ -263,12 +277,12 @@ jobs: ENABLE_UTAPI_V2: t S3BACKEND: mem BUCKET_DENY_FILTER: utapi-event-filter-deny-bucket - CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }} + CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}:${{ github.sha }} JOB_NAME: ${{ github.job }} steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - name: Setup CI environment @@ -282,7 +296,7 @@ jobs: bash wait_for_local_port.bash 8000 40 yarn run test_utapi_v2 | tee /tmp/artifacts/${{ github.job }}/tests.log - name: Upload logs to artifacts - uses: scality/action-artifacts@v3 + uses: scality/action-artifacts@v4 with: method: upload url: https://artifacts.scality.net @@ -298,12 +312,13 @@ jobs: S3BACKEND: file S3VAULT: mem MPU_TESTING: true - CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }} + CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}:${{ github.sha }} + PYKMIP_IMAGE: ghcr.io/${{ github.repository }}/pykmip:${{ github.sha }} JOB_NAME: ${{ github.job }} steps: - name: Checkout - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: 3.9 - name: Setup CI environment @@ -321,7 +336,7 @@ jobs: bash wait_for_local_port.bash 5696 40 yarn run ft_kmip | tee /tmp/artifacts/${{ github.job }}/tests.log - name: Upload logs to artifacts - uses: scality/action-artifacts@v3 + uses: scality/action-artifacts@v4 with: method: upload url: https://artifacts.scality.net diff --git a/Dockerfile b/Dockerfile index 804247c349..20354c7758 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,9 @@ COPY ./package.json yarn.lock ./ ENV PYTHON=python3.9 ENV PY_VERSION=3.9.7 -RUN apt-get update \ +RUN sed -i 's|deb.debian.org/debian|archive.debian.org/debian|g' /etc/apt/sources.list \ + && sed -i 's|security.debian.org/debian-security|archive.debian.org/debian-security|g' /etc/apt/sources.list \ + && apt-get update \ && apt-get install -y --no-install-recommends \ jq \ python \ diff --git a/images/svc-base/Dockerfile b/images/svc-base/Dockerfile index 68eb4ad87b..c571a32e3d 100644 --- a/images/svc-base/Dockerfile +++ b/images/svc-base/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.scality.com/federation/nodesvc-base:7.10.6.0 +FROM ghcr.io/scality/federation/nodesvc-base:7.10.6.0 ENV S3_CONFIG_FILE=${CONF_DIR}/config.json ENV S3_LOCATION_FILE=${CONF_DIR}/locationConfig.json diff --git a/package.json b/package.json index d35a06fb54..0d7950481e 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "async": "~2.5.0", "aws-sdk": "2.905.0", "azure-storage": "^2.1.0", - "bucketclient": "scality/bucketclient#7.10.6", + "bucketclient": "scality/bucketclient#7.10.21", "commander": "^2.9.0", "cron-parser": "^2.11.0", "diskusage": "1.1.3", diff --git a/yarn.lock b/yarn.lock index 64f87d2601..23307698d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -904,6 +904,14 @@ bson@^1.1.4: resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.6.tgz#fb819be9a60cd677e0853aee4ca712a785d6618a" integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg== +bucketclient@scality/bucketclient#7.10.21: + version "7.10.21" + resolved "https://codeload.github.com/scality/bucketclient/tar.gz/95fb3d4c48ed51c68a048cb01021c7a1eb339922" + dependencies: + agentkeepalive "^4.1.4" + arsenal "git+https://github.com/scality/Arsenal#7.10.46" + werelogs scality/werelogs#8.1.0 + bucketclient@scality/bucketclient#7.10.6: version "7.10.6" resolved "https://codeload.github.com/scality/bucketclient/tar.gz/115ab1ae974781aafaba455cf83228b1732191af"