1.2.2 #65
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Runs on releases | |
| name: Publish release | |
| on: | |
| release: | |
| types: [published] | |
| permissions: | |
| contents: read | |
| env: | |
| python_version: 3.11 | |
| jobs: | |
| stable: | |
| runs-on: ubuntu-24.04 | |
| name: Write release to stable branch | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pin@v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Version Check | |
| run: | | |
| pip install --require-hashes -r contrib/dev_reqs/requirements.txt | |
| python3 .github/scripts/version_check.py | |
| - name: Push to Stable Branch | |
| uses: ad-m/github-push-action@77c5b412c50b723d2a4fbc6d71fb5723bcd439aa # pin@v1.0.0 | |
| if: env.stable_release == 'true' | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| branch: stable | |
| force: true | |
| build: | |
| runs-on: ubuntu-24.04 | |
| name: Build and attest frontend | |
| permissions: | |
| id-token: write | |
| contents: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pin@v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Environment Setup | |
| uses: ./.github/actions/setup | |
| with: | |
| npm: true | |
| - name: Install dependencies | |
| run: cd src/frontend && yarn install | |
| - name: Build frontend | |
| run: cd src/frontend && npm run compile && npm run build | |
| - name: Create SBOM for frontend | |
| uses: anchore/sbom-action@0b82b0b1a22399a1c542d4d656f70cd903571b5c # pin@v0 | |
| with: | |
| artifact-name: frontend-build.spdx | |
| path: src/frontend | |
| - name: Write version file - SHA | |
| run: cd src/backend/InvenTree/web/static/web/.vite && echo "$GITHUB_SHA" > sha.txt | |
| - name: Write version file - TAG | |
| run: cd src/backend/InvenTree/web/static/web/.vite && echo "${REF_NAME}" > tag.txt | |
| env: | |
| REF_NAME: ${{ github.ref_name }} | |
| - name: Write version file - SOURCE | |
| run: cd src/backend/InvenTree/web/static/web/.vite && echo "GitHub Actions build on $(date --utc +%Y-%m-%dT%H:%M:%SZ)" > source.txt | |
| - name: Zip frontend | |
| run: | | |
| cd src/backend/InvenTree/web/static/web | |
| zip -r ../frontend-build.zip * .vite | |
| - name: Attest Build Provenance | |
| id: attest | |
| uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # pin@v1 | |
| with: | |
| subject-path: "${{ github.workspace }}/src/backend/InvenTree/web/static/frontend-build.zip" | |
| - name: Upload frontend | |
| uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # pin@2.11.3 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: src/backend/InvenTree/web/static/frontend-build.zip | |
| asset_name: frontend-build.zip | |
| tag: ${{ github.ref }} | |
| overwrite: true | |
| - name: Upload frontend to artifacts | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # pin@v6.0.0 | |
| with: | |
| name: frontend-build | |
| path: src/backend/InvenTree/web/static/frontend-build.zip | |
| - name: Upload Attestation | |
| uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # pin@2.11.3 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| asset_name: frontend-build.intoto.jsonl | |
| file: ${{ steps.attest.outputs.bundle-path}} | |
| tag: ${{ github.ref }} | |
| overwrite: true | |
| docs: | |
| runs-on: ubuntu-24.04 | |
| name: Build and publish documentation | |
| permissions: | |
| contents: write | |
| env: | |
| INVENTREE_DB_ENGINE: sqlite3 | |
| INVENTREE_DB_NAME: inventree | |
| INVENTREE_MEDIA_ROOT: /home/runner/work/InvenTree/test_inventree_media | |
| INVENTREE_STATIC_ROOT: /home/runner/work/InvenTree/test_inventree_static | |
| INVENTREE_BACKUP_DIR: /home/runner/work/InvenTree/test_inventree_backup | |
| INVENTREE_SITE_URL: http://localhost:8000 | |
| INVENTREE_DEBUG: true | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pin@v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - name: Environment Setup | |
| uses: ./.github/actions/setup | |
| with: | |
| install: true | |
| npm: true | |
| - name: Install dependencies | |
| run: | | |
| pip install --require-hashes -r contrib/dev_reqs/requirements.txt | |
| pip install --require-hashes -r docs/requirements.txt | |
| - name: Build documentation | |
| run: | | |
| invoke build-docs --mkdocs | |
| - name: Zip build docs | |
| run: | | |
| cd docs/site | |
| zip -r docs-html.zip * | |
| - name: Publish documentation | |
| uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # pin@2.11.3 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: docs/site/docs-html.zip | |
| asset_name: docs-html.zip | |
| tag: ${{ github.ref }} | |
| overwrite: true | |
| build-pkgr: | |
| if: github.repository == 'inventree/InvenTree' | |
| name: ${{ matrix.target }} | |
| runs-on: ubuntu-latest | |
| needs: [build, docs] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| - ubuntu:22.04 | |
| - ubuntu:24.04 | |
| - debian:12 | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pin@v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Get frontend artifact | |
| uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # pin@v7.0.0 | |
| with: | |
| name: frontend-build | |
| - name: Setup | |
| id: setup | |
| env: | |
| NODE_ID: ${{ github.event.release.node_id }} | |
| BRANCH: ${{ github.event.release.target_commitish }} | |
| TARGET: ${{github.event.release.target_commitish}} | |
| REPO: ${{ github.repository }} | |
| run: | | |
| # Get info | |
| gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/$REPO/commits/$TARGET > commit.json | |
| # Extract info | |
| echo "INFO extract | Extracting info from github" | |
| DATE=$(jq -r '.commit.committer.date' commit.json) | |
| SIGNATURE=$(jq -r '.commit.verification.signature' commit.json) | |
| FULL_SHA=$(jq -r '.sha' commit.json) | |
| SHA=$(echo "$FULL_SHA" | cut -c1-7) | |
| echo "INFO write | Write VERSION information" | |
| echo "$VERSION" > VERSION | |
| echo "INVENTREE_COMMIT_HASH='$SHA'" >> VERSION | |
| echo "INVENTREE_COMMIT_SHA='$FULL_SHA'" >> VERSION | |
| echo "INVENTREE_COMMIT_DATE='$DATE'" >> VERSION | |
| echo "INVENTREE_PKG_INSTALLER='PKG'" >> VERSION | |
| echo "INVENTREE_PKG_BRANCH='$BRANCH'" >> VERSION | |
| echo "INVENTREE_PKG_TARGET='$TARGET'" >> VERSION | |
| echo "NODE_ID='$NODE_ID'" >> VERSION | |
| echo "SIGNATURE='$SIGNATURE'" >> VERSION | |
| echo "INFO write | Written VERSION information" | |
| echo "### VERSION ###" | |
| cat VERSION | |
| echo "### VERSION ###" | |
| # Move frontend build into place | |
| mkdir -p src/backend/InvenTree/web/static | |
| unzip -qq frontend-build.zip -d src/backend/InvenTree/web/static/web | |
| - name: Package | |
| uses: pkgr/action/package@c5666febcd31750da6428042193fc5b2fb765435 # pin@main | |
| id: package | |
| with: | |
| target: ${{ matrix.target }} | |
| version: ${{ steps.setup.outputs.version }} | |
| debug: true | |
| cache_prefix: ${{ github.ref_name }} | |
| env: | | |
| INVENTREE_DB_ENGINE=sqlite3 | |
| INVENTREE_DB_NAME=database.sqlite3 | |
| INVENTREE_PLUGINS_ENABLED=true | |
| INVENTREE_MEDIA_ROOT=/opt/inventree/media | |
| INVENTREE_STATIC_ROOT=/opt/inventree/static | |
| INVENTREE_BACKUP_DIR=/opt/inventree/backup | |
| INVENTREE_PLUGIN_FILE=/opt/inventree/plugins.txt | |
| INVENTREE_CONFIG_FILE=/opt/inventree/config.yaml | |
| APP_REPO=inventree/InvenTree | |
| - name: Publish to go.packager.io | |
| uses: pkgr/action/publish@3bce081ae512c5020856e237d37b3f5479d4aa71 # pin@main | |
| with: | |
| target: ${{ matrix.target }} | |
| token: ${{ secrets.PACKAGER_RELEASE_TOKEN }} | |
| repository: inventree/inventree | |
| channel: ${{ github.ref_name }} | |
| file: ${{ steps.package.outputs.package_path }} | |
| - name: Publish to artifact | |
| uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # pin@2.11.3 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: ${{ steps.package.outputs.package_path }} | |
| asset_name: ${{ matrix.target }}-{{ steps.setup.outputs.version }}.tar.gz | |
| tag: ${{ github.ref }} | |
| overwrite: true |