Skip to content

feat: replace lockfile with extractors from osv-scalibr #480

feat: replace lockfile with extractors from osv-scalibr

feat: replace lockfile with extractors from osv-scalibr #480

Workflow file for this run

name: Semantic
on:
schedule:
- cron: '0 0 * * SUN'
workflow_dispatch:
inputs:
filterResults:
description: 'What comparator results the generators should print'
required: false
default: 'failures'
type: choice
options:
- all
- failures
- successes
pull_request:
paths:
- '.github/workflows/semantic.yml'
- 'generators/**'
- 'go.mod' # for now assume that any changes to this have updated osv-scalibr
# Restrict jobs in this workflow to have no permissions by default; permissions
# should be granted per job as needed using a dedicated `permissions` block
permissions: {}
env:
VERSION_GENERATOR_PRINT: ${{ inputs.filterResults }}
jobs:
generate-debian-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/cache/restore@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: /tmp/debian-versions-generator-cache.csv
key: ${{ runner.os }}-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.13'
- run: dpkg --version
- run: python3 generators/generate-debian-versions.py
- run: git status
- run: stat debian-db.zip
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-debian-versions
path: generators/testdata/debian-versions-generated.txt
- uses: actions/cache/save@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: /tmp/debian-versions-generator-cache.csv
key: ${{ runner.os }}-${{ hashFiles('debian-db.zip') }}
generate-redhat-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/cache/restore@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: /tmp/redhat-versions-generator-cache.csv
key: ${{ runner.os }}-
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.13'
- run: sudo apt install rpm
- run: rpm --version
- run: python3 generators/generate-redhat-versions.py
- run: git status
- run: stat redhat-db.zip
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-redhat-versions
path: generators/testdata/redhat-versions-generated.txt
- uses: actions/cache/save@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: /tmp/redhat-versions-generator-cache.csv
key: ${{ runner.os }}-${{ hashFiles('redhat-db.zip') }}
generate-packagist-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # 2.35.4
with:
php-version: '8.2'
extensions: zip
- run: php generators/generate-packagist-versions.php
- run: git status
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-packagist-versions
path: generators/testdata/packagist-versions-generated.txt
generate-pypi-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: '3.13'
- name: setup dependencies
run: pip install packaging==21.3
- run: python3 generators/generate-pypi-versions.py
- run: git status
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-pypi-versions
path: generators/testdata/pypi-versions-generated.txt
generate-rubygems-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: ruby/setup-ruby@44511735964dcb71245e7e55f72539531f7bc0eb # v1.257.0
with:
ruby-version: '3.1'
- name: setup dependencies
run: gem install rubyzip
- run: ruby generators/generate-rubygems-versions.rb
- run: git status
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-rubygems-versions
path: generators/testdata/rubygems-versions-generated.txt
generate-maven-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
java-version: 17
distribution: oracle
- name: setup dependencies
run: |
mkdir -p generators/lib
curl https://repo1.maven.org/maven2/org/json/json/20220924/json-20220924.jar \
-o generators/lib/json-20220924.jar
curl https://repo1.maven.org/maven2/org/apache/maven/maven-artifact/3.8.5/maven-artifact-3.8.5.jar \
-o generators/lib/maven-artifact-3.8.5.jar
- run: java -cp 'generators/lib/*' generators/GenerateMavenVersions.java
- run: git status
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-maven-versions
path: generators/testdata/maven-versions-generated.txt
generate-cran-versions:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: r-lib/actions/setup-r@bd49c52ffe281809afa6f0fecbf37483c5dd0b93 # v2.11.3
with:
r-version: '3.5.3'
- run: Rscript generators/generate-cran-versions.R
- run: git status
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: generated-cran-versions
path: generators/testdata/cran-versions-generated.txt
test-semantic:
permissions:
contents: read # to fetch code (actions/checkout)
runs-on: ubuntu-latest
needs:
- generate-debian-versions
- generate-redhat-versions
- generate-packagist-versions
- generate-pypi-versions
- generate-rubygems-versions
- generate-maven-versions
- generate-cran-versions
if: always()
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version-file: .go-version
cache: true
- uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
pattern: generated-*-versions
path: generators/testdata/
merge-multiple: true
- run: git status
- run: make test