diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml new file mode 100644 index 0000000..8ef239d --- /dev/null +++ b/.github/workflows/gh-pages-deploy.yml @@ -0,0 +1,22 @@ +name: github pages deploy + +on: + push: + branches: + - main + paths-ignore: + - 'docs/**' + - 'README.md' + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: deploy + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build/html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b8e63d --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +aperitiiif-cli +.env +.DS_Store +tmp +build/image +build/presentation +notes* \ No newline at end of file diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..fa7adc7 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.3.5 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..88cd447 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 3.3.5 \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..8b15fdd --- /dev/null +++ b/Gemfile @@ -0,0 +1,10 @@ +source 'https://rubygems.org' + +gem 'aperitiiif', github: 'migrants-and-the-state/aperitiiif-cli', branch: 'main' +gem 'og_tasks', github: 'migrants-and-the-state/og_tasks', branch: 'main' + +group :development do + gem 'aws-sdk-s3', '~> 1' + gem 'dotenv' + gem 'pdf-reader' +end \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..0968ae9 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,159 @@ +GIT + remote: https://github.com/migrants-and-the-state/aperitiiif-cli.git + revision: 6288820d0986f090004456546a7573dacc5fc756 + branch: main + specs: + aperitiiif (0.1.2) + colorize + csv + iiif-presentation (= 1.1) + liquid + mimemagic + ostruct + parallel + ruby-progressbar + ruby-vips + safe_yaml + thor + +GIT + remote: https://github.com/migrants-and-the-state/og_tasks.git + revision: 6c404a92eb070ff5cae56be9cbac387e1de077fa + branch: main + specs: + og_tasks (0.1.0) + +GEM + remote: https://rubygems.org/ + specs: + Ascii85 (1.1.1) + activesupport (7.2.1) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + afm (0.2.2) + aws-eventstream (1.3.0) + aws-partitions (1.988.0) + aws-sdk-core (3.209.1) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.9) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.94.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.167.0) + aws-sdk-core (~> 3, >= 3.207.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.10.0) + aws-eventstream (~> 1, >= 1.0.2) + base64 (0.2.0) + bigdecimal (3.1.8) + colorize (1.1.0) + concurrent-ruby (1.3.4) + connection_pool (2.4.1) + csv (3.3.0) + dotenv (3.1.4) + drb (2.2.1) + faraday (2.12.0) + faraday-net_http (>= 2.0, < 3.4) + json + logger + faraday-net_http (3.3.0) + net-http + ffi (1.17.0-aarch64-linux-gnu) + ffi (1.17.0-aarch64-linux-musl) + ffi (1.17.0-arm-linux-gnu) + ffi (1.17.0-arm-linux-musl) + ffi (1.17.0-arm64-darwin) + ffi (1.17.0-x86-linux-gnu) + ffi (1.17.0-x86-linux-musl) + ffi (1.17.0-x86_64-darwin) + ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.0-x86_64-linux-musl) + hashery (2.1.2) + i18n (1.14.6) + concurrent-ruby (~> 1.0) + iiif-presentation (1.1.0) + activesupport (>= 3.2.18) + faraday (>= 0.9) + json + jmespath (1.6.2) + json (2.7.2) + liquid (5.5.1) + logger (1.6.1) + mimemagic (0.4.3) + nokogiri (~> 1) + rake + minitest (5.25.1) + net-http (0.4.1) + uri + nokogiri (1.16.7-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm-linux) + racc (~> 1.4) + nokogiri (1.16.7-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86-linux) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.7-x86_64-linux) + racc (~> 1.4) + ostruct (0.6.0) + parallel (1.26.3) + pdf-reader (2.12.0) + Ascii85 (~> 1.0) + afm (~> 0.2.1) + hashery (~> 2.0) + ruby-rc4 + ttfunk + racc (1.8.1) + rake (13.2.1) + ruby-progressbar (1.13.0) + ruby-rc4 (0.1.5) + ruby-vips (2.2.2) + ffi (~> 1.12) + logger + safe_yaml (1.0.5) + securerandom (0.3.1) + thor (1.3.2) + ttfunk (1.8.0) + bigdecimal (~> 3.1) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uri (0.13.1) + +PLATFORMS + aarch64-linux + aarch64-linux-gnu + aarch64-linux-musl + arm-linux + arm-linux-gnu + arm-linux-musl + arm64-darwin + x86-linux + x86-linux-gnu + x86-linux-musl + x86_64-darwin + x86_64-linux + x86_64-linux-gnu + x86_64-linux-musl + +DEPENDENCIES + aperitiiif! + aws-sdk-s3 (~> 1) + dotenv + og_tasks! + pdf-reader + +BUNDLED WITH + 2.5.16 diff --git a/README.md b/README.md new file mode 100644 index 0000000..b06b487 --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# og-template + +template repository for aperitiiif batches of a files for migrants and the state neh grant project 🥂 + +## description + +this is a modified aperitiiif batch repo. because of the size, images are not stored cannonically in the repo and processed by the github `publish-batch` action. + +instead, cannonical pdfs and images are stored in an NYU Research Workspace (RW) volume. the rake tasks in `lib` process the files from the volume mounted locally and sync the generated image and json resources for the IIIF APIs directly to AWS S3 using credentials stored (and gitignored) in `.env`. + +the github action is used to deploy the results to github pages only. + +## owner(s) +- [@mnyrop](https://github.com/mnyrop) + +## set up + +### prerequisites +- git +- asdf + +### steps +1. connect to m/s [research workspace mount](https://github.com/Migrants-and-The-State/playbook/blob/main/docs/research-workspace.md) +2. clone repo and `cd` into it +3. install ruby version and gems + ``` sh + asdf install ruby + bundle install + ``` +4. check for available tasks + ``` sh + bundle exec rake --tasks + ``` \ No newline at end of file diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..e02b1a7 --- /dev/null +++ b/Rakefile @@ -0,0 +1,4 @@ +require 'og_tasks' + +spec = Gem::Specification.find_by_name 'og_tasks' +Dir.glob("#{spec.gem_dir}/lib/**/*.rake").each { |r| load r } diff --git a/build/.gitkeep b/build/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..fc29532 --- /dev/null +++ b/config.yml @@ -0,0 +1,14 @@ +# batch config + +label: '' # TO DO +description: 'NARA A-Files for Migrants and the State Project' +attribution: '' +source_dir: '' # TO DO + +presentation_api_url: 'https://mats-aperitiiif-presenation-api-store-v1.s3.us-east-1.amazonaws.com' +image_api_url: 'https://dctn4zjpwgdwdiiy5odjv7o2se0bqgjb.lambda-url.us-east-1.on.aws/iiif/3' + +records: + file: 'src/records.csv' + + diff --git a/src/.gitkeep b/src/.gitkeep new file mode 100644 index 0000000..e69de29