Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/workflows/build_installer.yml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
name: Build installer
on:
workflow_dispatch:
inputs:
version:
description: 'Build installer for version (e.g. "1.0.4")'
required: true
type: string
release:
description: 'Upload as release artifact'
required: true
type: boolean

jobs:
build:
name: ActivitySim-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
ARCH: x86_64
TARGET_PLATFORM: win-64
OS_NAME: "Windows"

steps:
- name: Checkout code
uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@35d1405e78aa3f784fe3ce9a2eb378d5eeb62169
with:
miniconda-version: "latest"
if: contains(matrix.OS_NAME, 'Windows')

- name: Build installer
env:
ARCH: ${{ matrix.ARCH }}
OS_NAME: ${{ matrix.OS_NAME }}
TARGET_PLATFORM: ${{ matrix.TARGET_PLATFORM }}
run: |
export ACTIVITYSIM_VERSION=${{ inputs.version }}
export EXT=exe
source /c/Miniconda3/Scripts/activate;
source other_resources/installer/build_win.sh;
ls -alh build
shell: bash

- name: Upload installer to Github artifact
uses: actions/upload-artifact@v3
with:
path: build/Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}*
name: Activitysim-${{ inputs.version }}-${{ matrix.OS_NAME }}-${{ matrix.ARCH }}

- name: Upload installer to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Activitysim*
tag: v${{ inputs.version }}
overwrite: true
file_glob: true
if: inputs.release
53 changes: 53 additions & 0 deletions other_resources/installer/build.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

set -xe

env | sort

echo "***** Start: Building Activitysim installer *****"
CONSTRUCT_ROOT="${CONSTRUCT_ROOT:-${PWD}}"

cd "${CONSTRUCT_ROOT}"

# Constructor should be latest for non-native building
# See https://github.com/conda/constructor
echo "***** Install constructor *****"
conda install -y "constructor>=3.3.1" jinja2 curl libarchive -c conda-forge --override-channels

if [[ "$(uname)" == "Darwin" ]]; then
conda install -y coreutils -c conda-forge --override-channels
fi
# shellcheck disable=SC2154
if [[ "${TARGET_PLATFORM}" == win-* ]]; then
conda install -y "nsis=3.01" -c conda-forge --override-channels
fi
# pip install git+git://github.com/conda/constructor@3.3.1#egg=constructor --force --no-deps
conda list

echo "***** Make temp directory *****"
TEMP_DIR=$(mktemp -d --tmpdir=C:/Users/RUNNER~1/AppData/Local/Temp/);

echo "***** Copy file for installer construction *****"
cp -R other_resources/installer "${TEMP_DIR}/"
cp LICENSE.txt "${TEMP_DIR}/installer/"

ls -al "${TEMP_DIR}"

echo "***** Construct the installer *****"
# Transmutation requires the current directory is writable
cd "${TEMP_DIR}"
# shellcheck disable=SC2086
constructor "${TEMP_DIR}/installer/" --output-dir "${TEMP_DIR}"
cd -

cd "${TEMP_DIR}"

# This line will break if there is more than one installer in the folder.
INSTALLER_PATH=$(find . -name "Activitysim*.${EXT}" | head -n 1)

echo "***** Move installer to build folder *****"
mkdir -p "${CONSTRUCT_ROOT}/build"
mv "${INSTALLER_PATH}" "${CONSTRUCT_ROOT}/build/"

echo "***** Done: Building ActivitySim installer *****"
cd "${CONSTRUCT_ROOT}"
6 changes: 6 additions & 0 deletions other_resources/installer/build_win.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

set -ex

conda install posix --yes
source other_resources/installer/build.sh
22 changes: 22 additions & 0 deletions other_resources/installer/construct.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
{% set version = os.environ.get("ACTIVITYSIM_VERSION", "0.42.0-0") %}

name: Activitysim
version: {{ version }}

initialize_by_default: false
register_python_default: false

license_file: LICENSE.txt

menu_packages: []

installer_type: exe

channels:
- conda-forge

specs:
- python 3.9.*
- conda
- activitysim {{ version }}
- pip