Skip to content

Commit fe8561f

Browse files
committed
Merge remote-tracking branch 'origin/main' into support-additional-headers
2 parents 81fb11c + f751ddb commit fe8561f

33 files changed

+652
-145
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: "Setup Terraform"
2+
description: "Sets up Terraform and initializes the configuration"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- name: Setup Terraform
7+
uses: hashicorp/setup-terraform@v3
8+
with:
9+
terraform_version: 1.8.3
10+
terraform_wrapper: false
11+
12+
- name: Configure provider
13+
run: cp .github/provider.tf .
14+
shell: bash
15+
16+
- name: Terraform init
17+
run: terraform init
18+
shell: bash

.github/provider.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
terraform {
2+
backend "azurerm" {
3+
resource_group_name = "azure-blob"
4+
storage_account_name = "azureblobrubygemdev"
5+
container_name = "terraform"
6+
key = "terraform.tfstate"
7+
}
8+
}

.github/workflows/main.yml

Lines changed: 0 additions & 27 deletions
This file was deleted.

.github/workflows/teardown.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Teardown
2+
3+
on:
4+
schedule:
5+
- cron: "0 12 * * *"
6+
workflow_dispatch:
7+
8+
permissions:
9+
id-token: write
10+
contents: read
11+
env:
12+
ARM_SKIP_PROVIDER_REGISTRATION: true
13+
ARM_USE_OIDC: true
14+
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
15+
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
16+
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
17+
18+
jobs:
19+
teardown-infrastructure:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
- uses: ./.github/actions/setup-terraform
24+
- name: Terraform apply
25+
run: terraform apply -auto-approve
26+
27+
clean_storage_containers:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v4
32+
- name: Setup ruby
33+
uses: ruby/setup-ruby@v1
34+
with:
35+
bundler-cache: true
36+
- name: flush containers
37+
env:
38+
AZURE_ACCOUNT_NAME: ${{secrets.AZURE_ACCOUNT_NAME}}
39+
AZURE_ACCESS_KEY: ${{secrets.AZURE_ACCESS_KEY}}
40+
AZURE_PRIVATE_CONTAINER: ${{secrets.AZURE_PRIVATE_CONTAINER}}
41+
AZURE_PUBLIC_CONTAINER: ${{secrets.AZURE_PUBLIC_CONTAINER}}
42+
AZURE_PRINCIPAL_ID: ${{secrets.AZURE_PRINCIPAL_ID}}
43+
run: bundle exec rake flush_test_container

.github/workflows/test.yml

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
name: Run tests
2+
3+
on:
4+
pull_request:
5+
push:
6+
tags:
7+
- test
8+
branches:
9+
- '*'
10+
pull_request:
11+
12+
permissions:
13+
id-token: write
14+
contents: read
15+
env:
16+
ARM_SKIP_PROVIDER_REGISTRATION: true
17+
ARM_USE_OIDC: true
18+
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
19+
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
20+
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
21+
22+
jobs:
23+
deploy-infrastructure:
24+
runs-on: ubuntu-latest
25+
if: startsWith(github.ref, 'refs/tags/test')
26+
steps:
27+
- uses: actions/checkout@v4
28+
- uses: ./.github/actions/setup-terraform
29+
- name: Terraform apply
30+
run: terraform apply -auto-approve -var "create_vm=true" -var "create_app_service=true" -var "ssh_key=${{ secrets.SSH_PUBLIC_KEY }}"
31+
32+
app_service_test:
33+
needs: deploy-infrastructure
34+
runs-on: ubuntu-latest
35+
steps:
36+
- name: Install dependencies
37+
run: sudo apt-get install -y libvips sshuttle
38+
- name: Checkout
39+
uses: actions/checkout@v4
40+
- uses: ./.github/actions/setup-terraform
41+
- name: Azure login
42+
uses: azure/login@v2
43+
with:
44+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
45+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
46+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
47+
- name: Setup ruby
48+
uses: ruby/setup-ruby@v1
49+
with:
50+
bundler-cache: true
51+
- name: Tests
52+
env:
53+
AZURE_ACCOUNT_NAME: ${{secrets.AZURE_ACCOUNT_NAME}}
54+
AZURE_ACCESS_KEY: ${{secrets.AZURE_ACCESS_KEY}}
55+
AZURE_PRIVATE_CONTAINER: ${{secrets.AZURE_PRIVATE_CONTAINER}}
56+
AZURE_PUBLIC_CONTAINER: ${{secrets.AZURE_PUBLIC_CONTAINER}}
57+
AZURE_PRINCIPAL_ID: ${{secrets.AZURE_PRINCIPAL_ID}}
58+
run: bundle exec rake test_app_service
59+
60+
azurevm_test:
61+
needs: deploy-infrastructure
62+
runs-on: ubuntu-latest
63+
steps:
64+
- name: Install dependencies
65+
run: sudo apt-get install -y libvips sshuttle
66+
- name: SSH key
67+
env:
68+
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
69+
run: |
70+
mkdir -p /home/runner/.ssh
71+
echo "${{ secrets.SSH_PRIVATE_KEY }}" > /home/runner/.ssh/id_rsa
72+
chmod 600 /home/runner/.ssh/id_rsa
73+
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
74+
ssh-add /home/runner/.ssh/id_rsa
75+
- name: Checkout
76+
uses: actions/checkout@v4
77+
- uses: ./.github/actions/setup-terraform
78+
- name: Setup ruby
79+
uses: ruby/setup-ruby@v1
80+
with:
81+
bundler-cache: true
82+
- name: Tests
83+
env:
84+
AZURE_ACCOUNT_NAME: ${{secrets.AZURE_ACCOUNT_NAME}}
85+
AZURE_ACCESS_KEY: ${{secrets.AZURE_ACCESS_KEY}}
86+
AZURE_PRIVATE_CONTAINER: ${{secrets.AZURE_PRIVATE_CONTAINER}}
87+
AZURE_PUBLIC_CONTAINER: ${{secrets.AZURE_PUBLIC_CONTAINER}}
88+
AZURE_PRINCIPAL_ID: ${{secrets.AZURE_PRINCIPAL_ID}}
89+
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
90+
run: bundle exec rake test_azure_vm
91+
92+
azurite_test:
93+
runs-on: ubuntu-latest
94+
steps:
95+
- name: Setup Node.js
96+
uses: actions/setup-node@v3
97+
with:
98+
node-version: '18'
99+
- name: Install Azurite
100+
run: npm install -g azurite
101+
- name: Install dependencies
102+
run: sudo apt-get install -y libvips
103+
- name: Checkout
104+
uses: actions/checkout@v4
105+
- name: Setup Ruby
106+
uses: ruby/setup-ruby@v1
107+
with:
108+
bundler-cache: true
109+
- name: Run Azurite tests
110+
env:
111+
AZURE_PRIVATE_CONTAINER: ${{ secrets.AZURE_PRIVATE_CONTAINER }}
112+
AZURE_PUBLIC_CONTAINER: ${{ secrets.AZURE_PUBLIC_CONTAINER }}
113+
AZURE_PRINCIPAL_ID: ${{ secrets.AZURE_PRINCIPAL_ID }}
114+
run: bundle exec rake test_azurite
115+
116+
test:
117+
runs-on: ubuntu-latest
118+
steps:
119+
- name: Install dependencies
120+
run: sudo apt-get install -y libvips
121+
- name: Checkout
122+
uses: actions/checkout@v4
123+
- name: Setup ruby
124+
uses: ruby/setup-ruby@v1
125+
with:
126+
bundler-cache: true
127+
- name: Tests
128+
env:
129+
AZURE_ACCOUNT_NAME: ${{secrets.AZURE_ACCOUNT_NAME}}
130+
AZURE_ACCESS_KEY: ${{secrets.AZURE_ACCESS_KEY}}
131+
AZURE_PRIVATE_CONTAINER: ${{secrets.AZURE_PRIVATE_CONTAINER}}
132+
AZURE_PUBLIC_CONTAINER: ${{secrets.AZURE_PUBLIC_CONTAINER}}
133+
AZURE_PRINCIPAL_ID: ${{secrets.AZURE_PRINCIPAL_ID}}
134+
run: bundle exec rake test

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ terraform.tfstate
2424
terraform.tfstate.backup
2525
.terraform.tfstate.lock.info
2626
*.tfvars
27+
provider.tf
2728

2829
__azurite_db*
2930
__blobstorage__/

.ruby-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.1.6

.terraform.lock.hcl

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
## [Unreleased]
22

3+
## [0.5.8] 2025-05-14
4+
5+
- Add support for copying blobs across containers (#24)
6+
7+
## [0.5.7.1] 2025-04-22
8+
9+
- Fixed a bug when reusing the account name in the container name. #22
10+
11+
## [0.5.7] 2025-02-21
12+
13+
- Add `copy_blob`
14+
- Update `compose` to use `copy_blob` if 1 source key and blob is <= 256MiB
15+
16+
## [0.5.6] 2025-01-17
17+
18+
- Fix user delegation key not refreshing (#14)
19+
20+
## [0.5.5] 2025-01-10
21+
22+
- Allow lazy loading the signer
23+
- Add `blob_exist?`
24+
- Add `container_exist?`
25+
326
## [0.5.4] 2024-11-18
427

528
- Allow creating public container

0 commit comments

Comments
 (0)