-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
90 additions
and
42 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# update_nudge_osVersionRequirements.py | ||
|
||
This has been written and tested on Python 3.11. The script can be run independtly of the GitHub Action and takes the following inputs: | ||
|
||
- `--debug` OR `-d` OR `UNOS_DEBUG` (environment variable) | ||
- Produces verbose output to the console | ||
- `--test-mode` OR `-t` OR `UNOS_TEST_MODE` (environment variable) | ||
- Will enable verbose logging and prevent writing anything to disk | ||
- `--version` OR `-v` OR `UNOS_MIN_MAJOR_OS_VERSION` (environment variable) | ||
- Sets the minimum major OS version supported in your environment | ||
- `--file` OR `-f` OR `UNOS_NUDGE_JSON_FILE` (environment variable) | ||
- Location of your json file containing the `osVersionRequirements` array. If none is specified the file `nudge.json` is written to the current working directory. | ||
|
||
## Running the standalone script | ||
|
||
``` shell | ||
# Clone Repo | ||
gh repo clone smithjw/nudge-actions | ||
cd nudge-actions/app | ||
|
||
# Create Python Virtual Environment | ||
python -m venv .venv | ||
source .venv/bin/activate | ||
|
||
# Install Requirements | ||
pip install -r requirements.txt | ||
|
||
# Run Script | ||
python update_nudge_osVersionRequirements.py --test-mode | ||
``` | ||
|
||
## Updating Requirements Hashes | ||
|
||
> *This is really a note for FutureJames* | ||
To ensure that the hashes supplied in `requirements.txt` work across multiple platforms, we're taking advantakge of the Python package [`pip-compile-cross-platform`](https://pypi.org/project/pip-compile-cross-platform/) which can be installed with the command: | ||
|
||
`pip install --user pip-compile-cross-platform` | ||
|
||
To run, execute the following command: | ||
|
||
`pip-compile-cross-platform --min-python-version 3.11 app/requirements.in` |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Example Actions | ||
|
||
Once you've setup the GitHub Action calling [`update-nudge-version.yml`](/.github/workflows/update-nudge-version.yml) to keep your json file up-to-date, you'll need to either add some additonal steps into that Workflow for uploading it a webserver that your Mac fleet can reach, or create a separate Workflow entirelty. | ||
|
||
In this folder I'll have a few examples of how you can upload that file when updated. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Upload json File to Azure | ||
# This example is taken from the Azure Documentation and a direct link is below | ||
# https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-static-site-github-actions?tabs=userlevel#add-your-workflow | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
paths: | ||
- 'nudge.json' | ||
# Modify the name of this to match what your json file is called | ||
|
||
jobs: | ||
upload-file: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- uses: azure/login@v1 | ||
with: | ||
creds: ${{ secrets.AZURE_CREDENTIALS }} | ||
|
||
- name: Upload to blob storage | ||
uses: azure/CLI@v1 | ||
with: | ||
inlineScript: | | ||
az storage blob upload-batch --account-name <STORAGE_ACCOUNT_NAME> --auth-mode key -d '$web' -s 'nudge.json' | ||
# Modify the name of the json file to match what your json file is called | ||
# If you're using a CDN, you can purge the cache with the following step | ||
- name: Purge CDN endpoint | ||
uses: azure/CLI@v1 | ||
with: | ||
inlineScript: | | ||
az cdn endpoint purge --content-paths "/*" --profile-name "CDN_PROFILE_NAME" --name "CDN_ENDPOINT" --resource-group "RESOURCE_GROUP" | ||
- name: logout | ||
run: | | ||
az logout | ||
if: always() |