Skip to content

Commit

Permalink
Integrate atom (CycloneDX#347)
Browse files Browse the repository at this point in the history
* Use atom for python

Signed-off-by: Prabhu Subramanian <[email protected]>

* Version solvers

Signed-off-by: Prabhu Subramanian <[email protected]>

---------

Signed-off-by: Prabhu Subramanian <[email protected]>
  • Loading branch information
prabhu authored Jun 21, 2023
1 parent 6b09aa3 commit f22d576
Show file tree
Hide file tree
Showing 22 changed files with 3,682 additions and 354 deletions.
26 changes: 19 additions & 7 deletions .github/workflows/python-atom-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@ jobs:
with:
repository: 'psf/pyperf'
path: 'repotests/pyperf'
- uses: actions/checkout@v3
with:
repository: 'psf/webassembly'
path: 'repotests/webassembly'
- uses: actions/checkout@v3
with:
repository: 'psf/cachecontrol'
Expand All @@ -48,6 +44,14 @@ jobs:
with:
repository: 'pallets/flask'
path: 'repotests/flask'
- uses: actions/checkout@v3
with:
repository: 'pallets/click'
path: 'repotests/click'
- uses: actions/checkout@v3
with:
repository: 'pallets/jinja'
path: 'repotests/jinja'
- name: repotests
run: |
wget https://github.com/CycloneDX/cyclonedx-cli/releases/download/v0.24.2/cyclonedx-linux-x64
Expand All @@ -59,9 +63,17 @@ jobs:
bin/cdxgen -p -r -t python repotests/pyperf -o bomresults/bom-pyperf.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-pyperf.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-pyperf.xml --input-format xml --input-version v1_4
bin/cdxgen -p -r -t python repotests/webassembly -o bomresults/bom-webassembly.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-webassembly.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-webassembly.xml --input-format xml --input-version v1_4
bin/cdxgen -p -r -t python repotests/cachecontrol -o bomresults/bom-cachecontrol.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-cachecontrol.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-cachecontrol.xml --input-format xml --input-version v1_4
bin/cdxgen -p -r -t python repotests/flask -o bomresults/bom-flask.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-flask.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-flask.xml --input-format xml --input-version v1_4
bin/cdxgen -p -r -t python repotests/click -o bomresults/bom-click.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-click.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-click.xml --input-format xml --input-version v1_4
bin/cdxgen -p -r -t python repotests/jinja -o bomresults/bom-jinja.json
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-jinja.json --input-format json --input-version v1_4
./cyclonedx validate --fail-on-errors --input-file bomresults/bom-jinja.xml --input-format xml --input-version v1_4
env:
CDXGEN_DEBUG_MODE: debug
61 changes: 41 additions & 20 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,32 @@ ARG SWIFT_PLATFORM=ubi9
ARG SWIFT_BRANCH=swift-5.8-release
ARG SWIFT_VERSION=swift-5.8-RELEASE
ARG SWIFT_WEBROOT=https://download.swift.org
ARG JAVA_VERSION=22.3.r19-grl
ARG SBT_VERSION=1.9.0
ARG MAVEN_VERSION=3.9.2
ARG GRADLE_VERSION=8.1.1

ENV GOPATH=/opt/app-root/go \
GO_VERSION=1.20.4 \
SBT_VERSION=1.8.3 \
GRADLE_VERSION=8.1.1 \
GRADLE_HOME=/opt/gradle-8.1.1 \
JAVA_VERSION=$JAVA_VERSION \
SBT_VERSION=$SBT_VERSION \
MAVEN_VERSION=$MAVEN_VERSION \
GRADLE_VERSION=$GRADLE_VERSION \
GRADLE_OPTS="-Dorg.gradle.daemon=false" \
JAVA_HOME="/opt/java/${JAVA_VERSION}" \
MAVEN_HOME="/opt/maven/${MAVEN_VERSION}" \
GRADLE_HOME="/opt/gradle/${GRADLE_VERSION}" \
SBT_HOME="/opt/sbt/${SBT_VERSION}" \
PYTHONUNBUFFERED=1 \
PYTHONIOENCODING="utf-8" \
COMPOSER_ALLOW_SUPERUSER=1 \
ANDROID_HOME=/opt/android-sdk-linux \
SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
SWIFT_PLATFORM=$SWIFT_PLATFORM \
SWIFT_BRANCH=$SWIFT_BRANCH \
SWIFT_VERSION=$SWIFT_VERSION \
SWIFT_WEBROOT=$SWIFT_WEBROOT \
PATH=${PATH}:${GRADLE_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:/opt/sbt/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:
SWIFT_WEBROOT=$SWIFT_WEBROOT
ENV PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${GRADLE_HOME}/bin:${SBT_HOME}/bin:${GOPATH}/bin:/usr/local/go/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:

COPY . /opt/cdxgen

Expand All @@ -39,16 +51,32 @@ RUN set -e; \
case "${ARCH_NAME##*-}" in \
'x86_64') \
OS_ARCH_SUFFIX=''; \
GOBIN_VERSION='amd64'; \
;; \
'aarch64') \
OS_ARCH_SUFFIX='-aarch64'; \
GOBIN_VERSION='arm64'; \
;; \
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
esac; \
echo -e "[nodejs]\nname=nodejs\nstream=20\nprofiles=\nstate=enabled\n" > /etc/dnf/modules.d/nodejs.module \
&& microdnf module enable maven php ruby -y \
&& microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core python3 python3-devel python3-pip ruby ruby-devel \
pcre2 which tar gzip zip unzip maven sudo java-17-openjdk-headless nodejs ncurses \
&& microdnf module enable php ruby -y \
&& microdnf install -y php php-curl php-zip php-bcmath php-json php-pear php-mbstring php-devel make gcc git-core \
python3.11 python3.11-devel python3.11-pip ruby ruby-devel \
pcre2 which tar gzip zip unzip sudo nodejs ncurses \
&& alternatives --install /usr/bin/python3 python /usr/bin/python3.11 1 \
&& python3 --version \
&& python3 -m pip install --upgrade pip \
&& curl -s "https://get.sdkman.io" | bash \
&& source "$HOME/.sdkman/bin/sdkman-init.sh" \
&& echo -e "sdkman_auto_answer=true\nsdkman_selfupdate_feature=false\nsdkman_auto_env=true" >> $HOME/.sdkman/etc/config \
&& sdk install java $JAVA_VERSION \
&& sdk install maven $MAVEN_VERSION \
&& sdk install gradle $GRADLE_VERSION \
&& sdk install sbt $SBT_VERSION \
&& sdk offline enable \
&& mv /root/.sdkman/candidates/* /opt/ \
&& rm -rf /root/.sdkman \
&& cd /opt/cdxgen && npm install --omit=dev \
&& SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_VERSION/$SWIFT_VERSION-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
Expand All @@ -64,14 +92,6 @@ RUN set -e; \
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
&& swift --version \
&& microdnf install -y epel-release \
&& curl -LO "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" \
&& unzip -q gradle-${GRADLE_VERSION}-bin.zip -d /opt/ \
&& chmod +x /opt/gradle-${GRADLE_VERSION}/bin/gradle \
&& rm gradle-${GRADLE_VERSION}-bin.zip \
&& curl -LO "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.zip" \
&& unzip -q sbt-${SBT_VERSION}.zip -d /opt/ \
&& chmod +x /opt/sbt/bin/sbt \
&& rm sbt-${SBT_VERSION}.zip \
&& mkdir -p ${ANDROID_HOME}/cmdline-tools \
&& curl -L https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o ${ANDROID_HOME}/cmdline-tools/android_tools.zip \
&& unzip ${ANDROID_HOME}/cmdline-tools/android_tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \
Expand All @@ -84,9 +104,9 @@ RUN set -e; \
&& /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'extras;google;m2repository' --sdk_root=/opt/android-sdk-linux \
&& /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'extras;android;m2repository' --sdk_root=/opt/android-sdk-linux \
&& /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'extras;google;google_play_services' --sdk_root=/opt/android-sdk-linux \
&& curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" \
&& tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz \
&& rm go${GO_VERSION}.linux-amd64.tar.gz \
&& curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-${GOBIN_VERSION}.tar.gz" \
&& tar -C /usr/local -xzf go${GO_VERSION}.linux-${GOBIN_VERSION}.tar.gz \
&& rm go${GO_VERSION}.linux-${GOBIN_VERSION}.tar.gz \
&& curl -LO "https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein" \
&& chmod +x lein \
&& mv lein /usr/local/bin/ \
Expand All @@ -102,7 +122,8 @@ RUN set -e; \
&& echo 'extension=timezonedb.so' >> /etc/php.ini \
&& php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php \
&& mv composer.phar /usr/local/bin/composer \
&& python -m pip install --user pipenv \
&& python3 -m pip install --user pipenv \
&& chmod a-w -R /opt \
&& rm -rf /var/cache/yum \
&& microdnf clean all

Expand Down
Loading

0 comments on commit f22d576

Please sign in to comment.