Skip to content

Commit

Permalink
Add
Browse files Browse the repository at this point in the history
  • Loading branch information
daniel-va committed Nov 5, 2024
1 parent 0df0e6f commit 9d7d14c
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 40 deletions.
8 changes: 4 additions & 4 deletions .github/scripts/remove-packages.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { Octokit } = require("@octokit/rest");

const removePackageVersions = async (imageUrl, imageVersions) => {
const { Octokit } = await import("@octokit/rest");

const octokit = new Octokit({
auth: process.env.GITHUB_TOKEN,
});
Expand All @@ -11,7 +11,7 @@ const removePackageVersions = async (imageUrl, imageVersions) => {
await octokit.rest.packages.deletePackageVersionForOrg({
package_type: "container",
package_name: imageName,
username: imageOwner,
org: imageOwner,
package_version_id: imageId,
});
}
Expand All @@ -26,7 +26,7 @@ const loadOutdatedVersionIds = async (octokit, imageOwner, imageName, versions)
const response = await octokit.rest.packages.getAllPackageVersionsForPackageOwnedByOrg({
package_type: "container",
package_name: imageName,
username: imageOwner,
org: imageOwner,
page,
});
if (response.data.length === 0) {
Expand Down
18 changes: 18 additions & 0 deletions .github/scripts/remove.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const removePackageVersions = async (imageUrl) => {
const { Octokit } = await import("@octokit/rest");

const octokit = new Octokit({
auth: process.env.GITHUB_TOKEN,
});

const [_imageHost, imageOwner, imageName] = imageUrl.split("/");
await octokit.rest.packages.deletePackageForOrg({
package_type: "container",
package_name: imageName,
org: imageOwner,
});
};

module.exports = {
removePackageVersions,
};
103 changes: 68 additions & 35 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,41 +34,11 @@ jobs:
uses: actions/dependency-review-action@v4


check-changelog:
name: "Check CHANGELOG"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# Fetch full history for comparison
fetch-depth: 0
- name: Determine if branch is a feature branch
id: check_feature_branch
run: |
if [[ "${{ github.head_ref || github.ref_name }} " =~ ^feature/* ]]; then
echo "is_feature=true" >> $GITHUB_ENV
else
echo "is_feature=false" >> $GITHUB_ENV
fi
- name: Check if CHANGELOG.md has changed
if: env.is_feature == 'true'
run: |
# Compare the CHANGELOG.md file in the current branch with the `develop` branch
if git diff --name-only origin/develop...HEAD | grep -q '^CHANGELOG.md$'; then
echo "CHANGELOG.md has been updated."
else
echo "CHANGELOG.md has not been updated."
exit 1
fi
install-ui:
name: "Install UI"
runs-on: ubuntu-latest
needs:
- dependency-review
- check-changelog
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -165,7 +135,6 @@ jobs:
runs-on: ubuntu-latest
needs:
- dependency-review
- check-changelog
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand Down Expand Up @@ -210,9 +179,6 @@ jobs:
rm -r tests/
echo "fn main() {}" > src/main.rs
cargo build --all-targets --locked --quiet
rustup component add rustfmt
rustup component add clippy
check-api:
Expand Down Expand Up @@ -264,6 +230,7 @@ jobs:
toolchain: ${{ env.RUST_VERSION }}
profile: minimal
override: true
components: clippy, rustfmt
- name: Restore cargo registry
uses: actions/cache/restore@v4
with:
Expand All @@ -286,7 +253,7 @@ jobs:
- name: Run clippy
run: |
cd api
cargo clippy --frozen
cargo clippy --frozen --quiet
test-api:
Expand Down Expand Up @@ -346,3 +313,69 @@ jobs:
run: |
kill $(cat api.pid)
docker compose down
check-changelog:
name: "Check CHANGELOG"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# Fetch full history for comparison
fetch-depth: 0
- name: Determine if branch is a feature branch
id: check_feature_branch
run: |
if [[ "${{ github.head_ref || github.ref_name }} " =~ ^feature/* ]]; then
echo "is_feature=true" >> $GITHUB_ENV
else
echo "is_feature=false" >> $GITHUB_ENV
fi
- name: Check if CHANGELOG.md has changed
if: env.is_feature == 'true'
continue-on-error: true
run: |
# Compare the CHANGELOG.md file in the current branch with the `develop` branch
if git diff --name-only origin/develop...HEAD | grep -q '^CHANGELOG.md$'; then
echo "CHANGELOG.md has been updated."
else
echo "::warning file=CHANGELOG.md::CHANGELOG.md has not been updated."
exit 1
exit 1
fi
prefer-single-commit:
name: "Prefer Single Commit"
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# Fetch full history for comparison
fetch-depth: 0
- name: Count commits
id: count_commits
run: |
commit_count=$(git rev-list --count HEAD ^origin/${{ github.event.pull_request.base.ref }})
echo "commit_count=$commit_count" >> $GITHUB_ENV
- name: Fail if more than one commit
if: env.commit_count > 1
run: |
echo "::error title=Please Squash your PR::Pull request contains more than one commit ($commit_count commits). Please squash your commits."
cleanup:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node
run: |
npm install @octokit/rest
- name: Remove old versions
uses: actions/github-script@v7
with:
script: |
const { removePackageVersions } = require('./.github/scripts/remove.js');
await removePackageVersions("ghcr.io/swisstopo/swissgeol-viewer-app-api")
2 changes: 1 addition & 1 deletion ui/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM node:22-alpine as build
WORKDIR /app
COPY . .

RUN npm install --no-scripts
RUN npm install --ignore-scripts
RUN npm run build --omit=dev


Expand Down

0 comments on commit 9d7d14c

Please sign in to comment.