diff --git a/.github/workflows/publish_v3.yml b/.github/workflows/publish_v3.yml index 63117eab0..6643549ad 100644 --- a/.github/workflows/publish_v3.yml +++ b/.github/workflows/publish_v3.yml @@ -20,10 +20,10 @@ jobs: VERSION_ALIASES: "latest v3.0 v3.0.1-draft v3-draft v3.0-RC1 v3.0-RC2" # aliases for VERSION GIT_USER_NAME: "ci-bot" # for gh-pages commit GIT_USER_EMAIL: "ci-bot@spdx.dev" # for gh-pages commit - PARSER_OUTPUT_DIR: "__parser_output" # temp dir for output from spec-parser - RDF_BASE_DIR: "" # change to "rdf" in new spec-parser output dir structure - MKDOCS_BASE_DIR: "" # change to "mkdocs" in new spec-parser output dir structure - MKDOCS_MODEL_YML: "mkdocs-files.yml" # contains list of model Markdown files + PARSER_OUT_BASE_DIR: "__parser_out" # temp dir for output from spec-parser + PARSER_OUT_RDF_DIR: "rdf" # contains RDFs and schema; relative to PARSER_OUT_BASE_DIR + PARSER_OUT_MKDOCS_DIR: "mkdocs" # contains model Markdown files; relative to PARSER_OUT_BASE_DIR + MKDOCS_MODEL_YML: "model-files.yml" # contains list of model Markdown files MKDOCS_BASE_YML: "mkdocs.yml" # initial MkDocs configuration MKDOCS_FULL_YML: "__mkdocs-full.yml" # MkDocs configuration combined with model list REDIRECT_MAP_PATH: "etc/redirect-map.csv" # redirect map @@ -51,45 +51,43 @@ jobs: run: pip install -r spdx-spec/requirements.txt - name: Install pre-requisites for spec-parser run: pip install -r spec-parser/requirements.txt + - name: Install fake pandoc (to bypass the Tex generation by spec-parser) + run: | + echo "#!/bin/sh" > /usr/local/bin/pandoc + echo "exit 0" >> /usr/local/bin/pandoc + chmod +x /usr/local/bin/pandoc - name: Build model files - run: python3 spec-parser/main.py spdx-3-model/model $PARSER_OUTPUT_DIR + run: python3 spec-parser/main.py spdx-3-model/model $PARSER_OUT_BASE_DIR - name: Create directories for model (MkDocs) and RDF files run: | - mkdir spdx-spec/docs/rdf - mkdir spdx-spec/docs/model + mkdir -p spdx-spec/docs/rdf + mkdir -p spdx-spec/docs/model - name: Copy JSON annotations - # Will be redirected from https://spdx.org/rdf/3.0.0/spdx-json-serialize-annotations.ttl - # and available at https://spdx.github.io/spdx-spec/v3.0/rdf/jsonld-annotations.ttl + # Will be redirected from https://spdx.org/rdf/3.0.x/spdx-json-serialize-annotations.ttl + # and available at https://spdx.github.io/spdx-spec/v3.0.x/rdf/jsonld-annotations.ttl + # Note: When release a new version, update the content of annotations.ttl to match the version run: | cp spdx-spec/serialization/jsonld/annotations.ttl spdx-spec/docs/rdf/jsonld-annotations.ttl cp spdx-spec/serialization/jsonld/annotations.ttl spdx-spec/docs/model/jsonld-annotations.ttl - name: Copy JSON-LD context and RDFs - # Will be redirected from https://spdx.org/rdf/3.0.0/spdx-context.jsonld, spdx-model.ttl, etc. - # and available at https://spdx.github.io/spdx-spec/v3.0/rdf/spdx-context.jsonld + # Will be redirected from https://spdx.org/rdf/3.0.x/spdx-context.jsonld, spdx-model.ttl, etc. + # and available at https://spdx.github.io/spdx-spec/v3.0.x/rdf/spdx-context.jsonld run: | echo "====================" - echo "Source: $PARSER_OUTPUT_DIR/$RDF_BASE_DIR" + echo "Source: $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR" echo "--------------------" - ls $PARSER_OUTPUT_DIR/$RDF_BASE_DIR + ls $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR echo "====================" - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-context.jsonld spdx-spec/docs/rdf/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.dot spdx-spec/docs/rdf/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.json-ld spdx-spec/docs/rdf/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.pretty-xml spdx-spec/docs/rdf/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.ttl spdx-spec/docs/rdf/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.xml spdx-spec/docs/rdf/ + cp $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR/spdx-context.jsonld spdx-spec/docs/rdf/ + cp $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR/spdx-model.* spdx-spec/docs/rdf/ cp spdx-spec/docs/rdf/spdx-model.json-ld spdx-spec/docs/rdf/spdx-model.jsonld echo "====================" echo "Target (after copy): spdx-spec/docs/rdf" echo "--------------------" ls spdx-spec/docs/rdf echo "====================" - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-context.jsonld spdx-spec/docs/model/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.dot spdx-spec/docs/model/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.json-ld spdx-spec/docs/model/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.pretty-xml spdx-spec/docs/model/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.ttl spdx-spec/docs/model/ - cp $PARSER_OUTPUT_DIR/$RDF_BASE_DIR/spdx-model.xml spdx-spec/docs/model/ + cp $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR/spdx-context.jsonld spdx-spec/docs/model/ + cp $PARSER_OUT_BASE_DIR/$PARSER_OUT_RDF_DIR/spdx-model.* spdx-spec/docs/model/ cp spdx-spec/docs/model/spdx-model.json-ld spdx-spec/docs/model/spdx-model.jsonld echo "====================" echo "Target (after copy): spdx-spec/docs/model" @@ -97,8 +95,9 @@ jobs: ls spdx-spec/docs/model echo "====================" - name: Generate JSON schema - # Will be redirected from https://spdx.org/schema/3.0.0/spdx-json-schema.json - # and available at https://spdx.github.io/spdx-spec/v3.0/rdf/schema.json + # Will be redirected from https://spdx.org/schema/3.0.x/spdx-json-schema.json + # and available at https://spdx.github.io/spdx-spec/v3.0.x/rdf/schema.json + # Note: When release a new version, update URL in --context-url line to match the version run: | shacl2code generate \ --input spdx-spec/docs/rdf/spdx-model.ttl \ @@ -107,15 +106,15 @@ jobs: jsonschema \ --output spdx-spec/docs/rdf/schema.json cp spdx-spec/docs/rdf/schema.json spdx-spec/docs/model/schema.json - - name: Copy model files and file list for MkDocs - # Will be available at https://spdx.github.io/spdx-spec/v3.0/model/* + - name: Copy model Markdown files and a model file list for MkDocs + # Will be available at https://spdx.github.io/spdx-spec/v3.0.x/model/* run: | - cp -R $PARSER_OUTPUT_DIR/$MKDOCS_BASE_DIR/* spdx-spec/docs/model - cp $PARSER_OUTPUT_DIR/$MKDOCS_MODEL_YML spdx-spec + cp -R $PARSER_OUT_BASE_DIR/$PARSER_OUT_MKDOCS_DIR/* spdx-spec/docs/model + cp $PARSER_OUT_BASE_DIR/$MKDOCS_MODEL_YML spdx-spec # mkdir -p spdx-spec/docs/diagram - # cp $PARSER_OUTPUT_DIR/diagram/model.plantuml spdx-spec/docs/diagram + # cp $PARSER_OUT_BASE_DIR/diagram/model.plantuml spdx-spec/docs/diagram # mkdir -p spdx-spec/docs/jsondump - # cp $PARSER_OUTPUT_DIR/jsondump/model.json spdx-spec/docs/jsondump + # cp $PARSER_OUT_BASE_DIR/jsondump/model.json spdx-spec/docs/jsondump - name: Set Git identity working-directory: spdx-spec run: git config user.name $GIT_USER_NAME; git config user.email $GIT_USER_EMAIL @@ -163,6 +162,8 @@ jobs: # - https://spdx.github.io/spdx-spec/v3.0/model/schema.json # - https://spdx.github.io/spdx-spec/v3.0.1/rdf/schema.json # will all accessible and have the same content. + # Unlike HTML files, these files have to be a copy, + # since it cannot use the HTML refresh mechanism. working-directory: spdx-spec run: | git checkout $GH_PAGES_BRANCH